3

サービスを開始および停止するには、以下の方法があります。クラス ライブラリ (DLL) でメソッドを使用したので、別のコンソール アプリケーションからこのメソッドを呼び出してデバッグします。

アプリケーションは管理者権限で起動されます。

public void ServiceStart()
{
    ServiceController service = new ServiceController();
    service.ServiceName = "ASP.NET State Service";
    service.Start();
}

public void ServiceStop()
{
    ServiceController service = new ServiceController();
    service.ServiceName = "ASP.NET State Service";
    service.Stop();
}

しかし、私が呼び出すStart()Stop()、次のメッセージを含む例外がスローされると:

コンピューター '.' で ASP.NET State Service サービスを開くことができません。

誰かが私を助けることができますか?

4

2 に答える 2

9

表示名ではなく、サービス名を渡す必要があります。「サービス」アプリケーションでサービスのプロパティを常に確認してください。

で再試行してください

service.ServiceName = "aspnet_state";

または、表示名を使用して ServiceController インスタンスを作成できます。

ServiceController service = new ServiceController("ASP.NET State Service");

コンストラクター引数のドキュメントには次のように記載されているため:

システムに対してサービスを識別する名前。これは、サービスの表示名にすることもできます。

への呼び出しにも注意してください。

service.Start();

サービスの開始を待たずに、すぐに戻ります。あなたは電話するべきです

service.WaitForStatus(ServiceControllerStatus.Running);

アプリケーションを続行する前に、サービスが実行されていることを確認したい場合。

于 2015-08-07T08:56:54.290 に答える