1

C# で NetTcpActivator および NetPipeActivator サービスのステータスを取得しようとしています。

このコードを使用して、ServiceController を使用してすべてのサービスを一覧表示しました。

  ServiceController[] services = ServiceController.GetServices();

     foreach (ServiceController service in services)
     {
        string name = service.ServiceName;
        string status = service.Status.ToString();

     }

デバッグを開始しましたが、2 つのサービスが表示されません。

Windows のサービスにアクセスすると、2 つのサービスが表示されます。レジストリで SYSTEM\CurrentControlSet\services を探すと、NetTcpActivator と NetTcpPortSharing が表示されます。しかし、レジストリでは、サービスの状態を確認できません。

ServiceController でサービスが表示されない理由は何ですか? ServiceController に表示されない場合、サービスのステータスを取得する方法はありますか?

ありがとう

4

1 に答える 1

1

デバッグ目的ですべてのサービスを反復処理していると思いますが、単純な LINQ ステートメントを使用して必要なサービスを取得することもできます。

これらを実行して、サービスを取得できました。

var netTcpActivatorService = ServiceController.GetServices().FirstOrDefault(s => s.ServiceName == "NetTcpActivator");

var netPipeActivatorService = ServiceController.GetServices().FirstOrDefault(s => s.ServiceName == "NetPipeActivator");
于 2013-10-24T17:58:07.527 に答える