WindowsサービスがVisual Basic .Netから開始されていることを確認します

vb.net wcf windows-services
WindowsサービスがVisual Basic .Netから開始されていることを確認します

WindowsサービスでホストされているWCFサービス(http://msdn.microsoft.com/en-us/library/cc949080.aspx#[here]で説明されている手法を使用)があり、それがうまく機能しています。 現在、そのサービスを呼び出す必要がある(VB.Net)フロントエンドアプリを書いていますが、ユーザーがサービススナップインをいじってサービスを手動で開始する必要はありません。

Windowsサービスが開始されていることを確認するコードを作成できますか、そうでない場合は開始できますか?

*編集:*もちろん、サービスの起動が自動に設定されていることを確認できますが、常に実行する必要はなく、フロントエンドアプリでもサービスが実行されていることを確認して起動する必要があります。そうではありません。

  1  0


ベストアンサー

ServiceControllerクラスを使用して、必要に応じてサービスを操作できます。

Statusプロパティを使用してサービスを開始する必要があるかどうかを確認するMSDNの例:

' Toggle the Telnet service -
' If it is started (running, paused, etc), stop the service.
' If it is stopped, start the service.
Dim sc As New ServiceController("Telnet")
Console.WriteLine("The Telnet service status is currently set to {0}", sc.Status)

If sc.Status.Equals(ServiceControllerStatus.Stopped) Or sc.Status.Equals(ServiceControllerStatus.StopPending) Then
   ' Start the service if the current status is stopped.
   Console.WriteLine("Starting the Telnet service...")
   sc.Start()
Else
   ' Stop the service if its status is not set to "Stopped".
   Console.WriteLine("Stopping the Telnet service...")
   sc.Stop()
End If

' Refresh and display the current service status.
sc.Refresh()
Console.WriteLine("The Telnet service status is now set to {0}.", sc.Status)

2


あなたは何かをすることができます

    Dim controller As New ServiceController("ServiceNameHere")
    If controller.Status = ServiceControllerStatus.Stopped Then
        controller.Start()
    End If

System.ServiceProcessへの参照を追加してインポートすることを忘れないでください

2


タイトルとURLをコピーしました