this is most probably due to security issue, your asp.net application pool user may not have sufficient rights to Start/Stop a service.
first try to set application user as an administrator user. if that is working fine then you can impersonate user for this function only.(otherwise it will be more risky with running asp.net site with high previleges account)
Quote:
By default, IIS application runs under ASP.NET account which doesn't have access rights permission to window service. So, Very Important part of the solution is: Impersonation. You need to impersonate the application/part of the code with the User Credentials which is having proper rights and permission to access the window service.
Follow
Start/Stop Window Service from ASP.NET page[
^] blog post.