別のサービス (B) を開始/停止する必要がある Windows サービス (A) をインストールするインストーラーを作成しました。ただし、A が B を開始/停止しようとすると、次の例外が発生します。
System.InvalidOperationException: コンピューター '.' で MyService サービスを開けません。---> System.ComponentModel.Win32Exception: アクセスが拒否されました
インストーラーはサービスをローカル サービスとしてインストールし、私が付与する UAC ポップアップを介して管理者権限を要求します。また、管理者権限を要求するように設定されたサービスに app.manifest ファイルを追加しました。
それでも、まだそのエラーが発生しています。
これは私がサービスを開始する方法です (もちろん停止を呼び出すことを除いて、停止は同じです):
using (Mutex mutex = new Mutex(false, "MyServiceLock"))
{
mutex.WaitOne();
if (ServiceExists(serviceName) == true)
{
using (ServiceController serviceController = new ServiceController(serviceName, "."))
{
serviceController.Start(); // this line throws the exception
}
}
mutex.ReleaseMutex();
}
このサービスへのアクセスが拒否されるのはなぜですか?