問題タブ [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.

0 投票する
1 に答える
397 参照

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を使用しているため、残念ながら、それ以上を必要とするものはすべて私にとって選択肢ではありません。乾杯。

0 投票する
2 に答える
7594 参照

c# - ServiceController を使用してサービスを開始および停止できない

サービスを開始および停止するには、以下の方法があります。クラス ライブラリ (DLL) でメソッドを使用したので、別のコンソール アプリケーションからこのメソッドを呼び出してデバッグします。

アプリケーションは管理者権限で起動されます。

しかし、私が呼び出すStart()Stop()、次のメッセージを含む例外がスローされると:

コンピューター '.' で ASP.NET State Service サービスを開くことができません。

誰かが私を助けることができますか?

0 投票する
1 に答える
1086 参照

c# - スレッドの呼び出しで ServiceController.Start() 例外をキャッチできません

Windows サービスの開始時に発生する例外をキャッチするにはどうすればよいですか。サービスの Onstart() メソッドで例外をスローしているにもかかわらず、以下のコードで例外を取得できません。

スレッド コードの呼び出し

onstart() メソッドでアプリケーション ライセンスをチェックし、失敗した場合はライセンス エラーをスローします。これを呼び出しスレッドに共有して、DialogBox にメッセージを表示できるようにします。呼び出しプロセスで例外を処理できない場合にこれを行う方法についてのアイデア。

0 投票する
1 に答える
297 参照

c# - ServiceController を使用して SQL サービスが正しく開始されない

SQL サービスを自動的に再起動するアプリを作成しています。基本的に、これらは私がやっている手順です:

  1. アプリケーションを閉じる
  2. SQL サービスを停止する
  3. SQL サービスを開始する
  4. アプリケーションを開始

私が抱えている問題は、アプリケーションの起動にあります。アプリケーションが SQL サービスの前に開始され、データベース接続エラーが発生しているようです。次の行でサービスのステータスをチェックしていますが、まだ機能していません。

コード:

0 投票する
1 に答える
1083 参照

c# - パラメータ付きのC#サービスonCustomCommand?

現在、渡された引数で何かを行う特別なコマンドを実行するサービスを実装しようとしています。たとえば、ファイル パスです。私はcmdコマンドを使用しています:

sc control "ServiceName" 128

ただし、このコマンドでは引数を入力する方法がありません。方法は以下の通りです。

入力できる唯一の引数はint command、メソッドの です。folder pathforを入力したいのですがt1.readLog();。上記のコードでは、柔軟で面倒なパスをハードコーディングする必要があります。それで、とにかくこれを解決する方法はありますか?

0 投票する
3 に答える
5841 参照

c# - C# mvc で Windows サービスを停止または開始する方法は?

System.ServiceProcess.ServiceController System.Diagnostics.Process; を試しました。

WebフォームでWindowsサービスを制御します。System.ServiceProcess.ServiceControllerアクセス拒否例外が発生しています。

System.Diagnostics.Process私は何も得られません。WebフォームでWindowsサービスを開始/停止するにはどうすればよいですか?

0 投票する
1 に答える
1836 参照

.net - 非同期 ServiceController.WaitForStatus はどのように行うのですか?

したがって、 ServiceController.WaitForStatusはブロッキング コールです。タスク/非同期の方法で行うにはどうすればよいですか?

0 投票する
1 に答える
119 参照

vb.net - ライブ サービス コントローラー レポートを有効にする方法は?

アプリケーションのスクリーンショット:

ここに画像の説明を入力

アプリケーション コード:

.mdfファイルをコピーするにはSQLサービスを停止する必要があり、「サービス」から手動でサービスを停止/開始するのは非常に面倒なので、Vb.Netコーディングを使用して簡単にしようとしました...