私は、Windowsサービスを通じてバックグラウンドで作業を行うためのアプリケーションを開発しています。 MSDNチュートリアルのおかげでサービスが作成されました。その後、正しく開始または停止できます。C#ExecuteCommandと停止したWindowsサービス
私のサービスでもカスタムコマンドを実行する必要があります。したがって、サービスのクラスで "OnCustomCommand"メソッドを実装しました。
コマンドIDが128から255までのカスタム実行コマンドを送信することができます。したがって、ネット上で見つかったすべてのコマンドを実行できます。
私の問題は: サービスが停止してもコマンドを実行できません。 はserviceController
で呼び出すたびにSystem.InvalidOperationException
がスローされます。
Cannot control <myservice> service on computer '.'
これは、サービスの実行中には発生しません。
MSDNあなたがExecuteCommandを呼び出すと、サービスの ステータスが変更されません
言います。 サービスが開始された場合、ステータス は実行中のままです。サービスが の場合、ステータスは停止したままになります( など)。
これは、停止サービスの場合はexecuteCommand
になる可能性があります。
私のサービスはLocalSystemサービスとしてインストールされ、serviceController
は管理者権限で実行されます。
誰でもこれを解決する方法を知っていますか?
あなたが正しいかもしれません。それは奇妙だった私は2日を検索中に解決策を見つけませんでした。 MSDNのドキュメントは、この時点であいまいです... 私はそれに応じてアプリケーションを再編成します。 – Antwan