Acceso denegado al intentar detener un servicio de Windows C #
He creado un servicio web C # usando Visual Studio para detener el servicio de Windows 'Simple Mail Transfer Protocol (SMTP)' llamado SMTPSVC.
El siguiente es el método web para hacerlo:
[WebMethod]
public string StopService()
{
String status = "";
try
{
ServiceController scAlerter = new ServiceController("SMTPSVC");
Console.WriteLine(scAlerter.DisplayName);
Console.WriteLine(scAlerter.CanStop);
scAlerter.Stop();
Console.WriteLine("Service stopped");
status = "STOPPED";
}
catch (Exception e)
{
Console.WriteLine("Exception caught here" + e.ToString());
status = "Exception" + e.ToString();
}
return status;
}
Publiqué este servicio web en mi servidor IIS 5.1. Cuando invoqué el servicio, estaba arrojando la siguiente excepción 'Acceso denegado'
<?xml version="1.0" encoding="utf-8" ?>
<string xmlns="http://y-square.org/">
ExceptionSystem.InvalidOperationException: Cannot open SMTPSVC service on
computer '.'. ---> System.ComponentModel.Win32Exception: Access is denied
--- End of inner exception stack trace --- at
System.ServiceProcess.ServiceController.GetServiceHandle(Int32 desiredAccess)
at System.ServiceProcess.ServiceController.Stop() at Service.RestartService()
in c:\Inetpub\wwwroot\RestartService\App_Code\Service.cs:line 38
</string>
Por defecto, el servicio utiliza la cuenta de usuarioIUSER_system-name
y agregué esta cuenta de usuario al grupo de Administradores del sistema y también agreguéASPNET
cuenta de usuario en el grupo Administrador.
ude detener / iniciar este servicio de Windows desde el programa independiente C # con éxito.
¿Puede decirme amablemente cuál es el problema? ¿Debo cambiar alguna configuración de permisos o derechos de acceso de usuario de IIS para ejecutar esto?
¿También déjame saber qué cuenta de usuario usaría este servicio C # para detener el servicio de Windows?
Su ayuda es muy apreciada
Gracias de antemano, Yogi