cesso negado ao tentar parar um serviço do Windows em C
Criei um serviço web C # usando o visual studio para interromper o serviço Windows 'SMTP (Simple Mail Transfer Protocol)' chamado SMTPSV
A seguir está o método da web para fazer isso:
[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;
}
Publiquei este serviço da web no meu servidor IIS 5.1. Quando invoquei o serviço, ele lançava a seguinte exceção 'Acesso negado'
<?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 padrão, o serviço está usando a conta de usuárioIUSER_system-name
e adicionamos esta conta de usuário ao grupo Administradores do sistema e também adicionamosASPNET
conta de usuário no grupo Administrado
Consegui parar / iniciar este serviço do Windows a partir do programa independente C # com êxit
Você pode me informar qual é o problema? É necessário alterar quaisquer configurações de permissão ou direitos de acesso de usuário do IIS para executar isso?
Também me informe qual conta de usuário esse serviço C # usaria para interromper o Serviço Windows?
Sua ajuda é muito apreciada
Agradecemos antecipadamente, Yogi