15

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();
        }
    }
4

2 に答える 2

16

サーバー上のアプリケーションプールIDアカウントに、そのサービスを開始するためのアクセス許可があることを確認してください。ユーザーアカウント(admin)で実行されるため、ASP.NET開発サーバーで機能します。デフォルトのIIS構成では、このアカウントはネットワークサービスまたはApplicationPoolIdentity(IISのバージョンによって異なります)であり、通常はサービスを管理できません。

そのため、IISマネージャーでプールアカウントを変更します([アプリケーションプール] / [NameOfYourPool] / [詳細設定])。組み込みのアカウントを使用することも、ドメインの1つを使用することもできます。

apppool

于 2013-01-08T13:00:05.820 に答える