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」を参照してください。
コードのコンパイル
この例で必要な要素は次のとおりです。
System.serviceprocess.dll へのプロジェクト参照が必要です。
System.ServiceProcess 名前空間のメンバーへのアクセス許可。 コード内でメンバー名を完全修飾していない場合は、
Imports
ステートメントを追加します。 詳細については、「Imports ステートメント (.NET 名前空間および型)」を参照してください。
信頼性の高いプログラミング
ServiceController クラスの MachineName プロパティは、既定ではローカル コンピューターです。 別のコンピューター上の Windows サービスを参照するには、MachineName プロパティをそのコンピューターの名前に変更します。
サービス コントローラーの状態が Paused になるまで、サービスに対して Continue メソッド呼び出すことはできません。
次の条件を満たす場合は、例外が発生する可能性があります。
サービスを再開できません。 (InvalidOperationException)
システム API にアクセス中にエラーが発生しました。 (Win32Exception)
.NET Framework セキュリティ
コンピューター上のサービスの制御は、ServiceControllerPermissionAccess 列挙型を使って ServiceControllerPermission クラスのアクセス許可を設定することにより制限できます。
サービス情報へのアクセスは、PermissionState 列挙型を使って SecurityPermission クラスのアクセス許可を設定することにより制限できます。
関連項目
.NET