インストーラーを使用して Windows サービスをインストールし、ServiceControllerを使用して開始しました。
public static int StartService(string serviceName, int timeoutMilliseconds)
{
ServiceController service = new ServiceController(serviceName);
try
{
TimeSpan timeout = TimeSpan.FromMilliseconds(timeoutMilliseconds);
service.Start();
service.WaitForStatus(ServiceControllerStatus.Running, timeout);
service.Close();
return 0;
}
catch
{
return 1;
}
}
サービスは問題なく開始されているように見えますが、サービスがリモート コンピュータに対して WMI 呼び出しを実行しようとすると、例外がスローされます。
The RPC server is unavailable. (Exception from HRESULT: 0x800706BA)
サービスが実行されているマシンから、サービスが接続しようとしている同じマシンに WBEMTest で接続しようとしましたが、正常に動作します。
また、Services.msc から手動でサービスを開始すると、完全に機能します。ServiceController には何が欠けていますか?