2

ServiceController を使用して、サービスが登録されているかどうかを確認するにはどうすればよいですか? 以下のコード フラグメントでは、null の DisplayName をチェックすると、System.InvalidOperationException が発生します。

私が完全に見逃しているこれを行う簡単な方法はありますか?

ServiceController sc = new ServiceController("TestService");

if (sc.DisplayName == null)
{
     // unregistered or missing service
}
4

1 に答える 1

3

以下の解決策を見てください ...できるようには見えません...

ドキュメントから:

ServiceController クラスを使用して、既存のサービスに接続し、その動作を制御できます。

ServiceController がサービスと連携するには、サービスが既に登録されている必要があります。

単純に例外 (サービスが存在しないことを示す) をキャッチできると思いますが、それは本当に例外的ではないようです。

解決:

使用する

var services = ServiceController.GetServices(machineName)

必要なサービスの配列を検索します。ローカル ボックスで作業しているだけの場合は、machineName引数を省略できます。

http://msdn.microsoft.com/en-us/library/s21fd6th.aspx

于 2009-10-13T15:16:30.127 に答える