web-dev-qa-db-ja.com

System.ComponentModel.Win32Exception:アクセスが拒否されましたエラー

ウィンドウサービスの開始と停止に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();
        }
    }
13
Mahesh

サーバー上のアプリケーションプールIDアカウントに、そのサービスを開始する権限があることを確認してください。デフォルトのIIS構成では、このアカウントはNetwork serviceまたはApplicationPoolIdentity(IIS version)。通常はサービスを管理できません。

そのため、IIS Manager(アプリケーションプール/ YourYourPool /詳細設定)でプールアカウントを変更します。ビルトインアカウントまたはドメインのいずれかを使用できます。

apppool

15
Cybermaxs

VSを管理者モードで実行し、プロジェクトをロードします。管理者モードで開発者VS cmdを開きます。domainname\ usernameなどのコンピュータードメイン名で適切なユーザー名を指定します。

4
priyesh jaiswal