ウィンドウサービスの開始と停止にC#コードを使用していますが、このエラーが発生しています。
System.ComponentModel.Win32Exception: Access is denied
私のコード:
public void StartService(string serviceName, int timeoutMilliseconds)
{
ServiceController service = new ServiceController(serviceName);
try
{
TimeSpan timeout = TimeSpan.FromMilliseconds(timeoutMilliseconds);
service.Start();
service.WaitForStatus(ServiceControllerStatus.Running, timeout);
lblMessage.Text = "Service Started.";
}
catch (Exception ex)
{
//lblMessage.Text = "Error in Service Starting.";
lblMessage.Text = ex.ToString();
}
}
サーバー上のアプリケーションプールIDアカウントに、そのサービスを開始する権限があることを確認してください。デフォルトのIIS構成では、このアカウントはNetwork serviceまたはApplicationPoolIdentity(IIS version)。通常はサービスを管理できません。
そのため、IIS Manager(アプリケーションプール/ YourYourPool /詳細設定)でプールアカウントを変更します。ビルトインアカウントまたはドメインのいずれかを使用できます。
VSを管理者モードで実行し、プロジェクトをロードします。管理者モードで開発者VS cmdを開きます。domainname\ usernameなどのコンピュータードメイン名で適切なユーザー名を指定します。