次の方法で共有


方法: Windows サービスを続行する (Visual Basic)

Note

この記事は、.NET のホステッド サービスには適用されません。 Microsoft.Extensions.Hosting.BackgroundService を使用した Windows サービスの最新のコンテンツと Worker サービス テンプレートについては、次を参照してください。

この例では、ServiceController コンポーネントを使って、ローカル コンピューター上の IIS 管理サービスを続行します。

Dim theController As System.ServiceProcess.ServiceController
theController = New System.ServiceProcess.ServiceController("IISAdmin")
' Checks that the service is paused.
If theController.Status =
    System.ServiceProcess.ServiceControllerStatus.Paused Then

    ' Continues the service.
    theController.Continue()
End If

このコード例は、IntelliSense コード スニペットとしても利用できます。 コード スニペット ピッカーでは、これは [Windows オペレーティング システム] > [Windows サービス] に配置されます。 詳細については、「Code Snippets」を参照してください。

コードのコンパイル

この例で必要な要素は次のとおりです。

信頼性の高いプログラミング

ServiceController クラスの MachineName プロパティは、既定ではローカル コンピューターです。 別のコンピューター上の Windows サービスを参照するには、MachineName プロパティをそのコンピューターの名前に変更します。

サービス コントローラーの状態が Paused になるまで、サービスに対して Continue メソッド呼び出すことはできません。

次の条件を満たす場合は、例外が発生する可能性があります。

.NET Framework セキュリティ

コンピューター上のサービスの制御は、ServiceControllerPermissionAccess 列挙型を使って ServiceControllerPermission クラスのアクセス許可を設定することにより制限できます。

サービス情報へのアクセスは、PermissionState 列挙型を使って SecurityPermission クラスのアクセス許可を設定することにより制限できます。

関連項目