問題タブ [servicecontroller]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - ServiceController API は、サービスが停止したことを認識しません
ファイルを Program Files にコピーし、(コピーされたファイルの 1 つを介して) サービスを実行するインストーラーに取り組んでいます。最初のインストールではこれは問題なく動作しますが、インストーラーが実行され、サービスがマシン上で既に実行されている場合に問題が発生し始めます。これは、インストーラーが Program Files に既に存在するファイルを置き換えようとしているが、それらのファイルの 1 つが Windows サービスによって使用されているためです。そのため、サービスを停止しない限り、置き換えられません。
そこで、ServiceController API を使用して、インストールの開始時にサービスを停止し、ファイルをインストール (既存のファイルを上書き) して、サービスを再開することにしました。コードはほとんどありませんが、次のとおりです。
ServiceController をインスタンス化します。
サービスの停止:
次に、サービスが停止するのを待って、ファイルをインストールします。
最後にサービスを再起動します。
このコードを使用すると、service.WaitForStatus()
メソッドは永遠に待機します (または、少なくとも待機する準備ができているよりも長く、最大 1 時間まで待機します)。奇妙なことに、このコードを実行service.Status()
し、ログに書き込み、手動でサービスをチェックしてサービスが停止していることを確認し、ログをチェックして、サービスがまだ実行中であると ServiceController が認識していることを確認できます。
最初は問題があると思ったservice.Stop()
ので、サービスPIDを取得してタスクを強制終了するオブジェクトをいくつか作成してみましたProcess
。これにより、サービスが即座に停止しますが、それでもServiceController
サービスが停止したことを認識しません。コードからメソッドを削除するservice.WaitForStatus()
と、サービスで使用されているファイルをインストーラーが上書きしようとしているため、例外がスローされます。
また、さまざまなサービスでこれを試しましたが、結果は常に同じであり、問題はサービス自体にあるとは思えません。
ServiceController
サービスが停止したことを が認識しないのはなぜですか? この問題の解決策または回避策はありますか? 私は.NET 2.0を使用しているため、残念ながら、それ以上を必要とするものはすべて私にとって選択肢ではありません。乾杯。
c# - ServiceController を使用してサービスを開始および停止できない
サービスを開始および停止するには、以下の方法があります。クラス ライブラリ (DLL) でメソッドを使用したので、別のコンソール アプリケーションからこのメソッドを呼び出してデバッグします。
アプリケーションは管理者権限で起動されます。
しかし、私が呼び出すStart()
かStop()
、次のメッセージを含む例外がスローされると:
コンピューター '.' で ASP.NET State Service サービスを開くことができません。
誰かが私を助けることができますか?
c# - スレッドの呼び出しで ServiceController.Start() 例外をキャッチできません
Windows サービスの開始時に発生する例外をキャッチするにはどうすればよいですか。サービスの Onstart() メソッドで例外をスローしているにもかかわらず、以下のコードで例外を取得できません。
スレッド コードの呼び出し
onstart() メソッドでアプリケーション ライセンスをチェックし、失敗した場合はライセンス エラーをスローします。これを呼び出しスレッドに共有して、DialogBox にメッセージを表示できるようにします。呼び出しプロセスで例外を処理できない場合にこれを行う方法についてのアイデア。
c# - ServiceController を使用して SQL サービスが正しく開始されない
SQL サービスを自動的に再起動するアプリを作成しています。基本的に、これらは私がやっている手順です:
- アプリケーションを閉じる
- SQL サービスを停止する
- SQL サービスを開始する
- アプリケーションを開始
私が抱えている問題は、アプリケーションの起動にあります。アプリケーションが SQL サービスの前に開始され、データベース接続エラーが発生しているようです。次の行でサービスのステータスをチェックしていますが、まだ機能していません。
コード:
c# - パラメータ付きのC#サービスonCustomCommand?
現在、渡された引数で何かを行う特別なコマンドを実行するサービスを実装しようとしています。たとえば、ファイル パスです。私はcmd
コマンドを使用しています:
sc control "ServiceName" 128
ただし、このコマンドでは引数を入力する方法がありません。方法は以下の通りです。
入力できる唯一の引数はint
command
、メソッドの です。folder path
forを入力したいのですがt1.readLog();
。上記のコードでは、柔軟で面倒なパスをハードコーディングする必要があります。それで、とにかくこれを解決する方法はありますか?
c# - C# mvc で Windows サービスを停止または開始する方法は?
System.ServiceProcess.ServiceController System.Diagnostics.Process; を試しました。
WebフォームでWindowsサービスを制御します。System.ServiceProcess.ServiceController
アクセス拒否例外が発生しています。
System.Diagnostics.Process
私は何も得られません。WebフォームでWindowsサービスを開始/停止するにはどうすればよいですか?
.net - 非同期 ServiceController.WaitForStatus はどのように行うのですか?
したがって、 ServiceController.WaitForStatusはブロッキング コールです。タスク/非同期の方法で行うにはどうすればよいですか?