7

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

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

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

4

3 に答える 3

6

達成すべき重要なポイントは次のとおりです。

1 アプリケーションに System.ServiceProcess 参照を追加する必要があります。この名前空間は、ウィンドウ サービスにアクセスするための ServiceController クラスを保持します。

2 ウィンドウ サービスを明示的に開始または停止する前に、ウィンドウ サービスのステータスを確認する必要があります。

3 デフォルトでは、IIS アプリケーションは、ウィンドウ サービスへのアクセス権を持たない ASP.NET アカウントで実行されます。したがって、ソリューションの非常に重要な部分は次のとおりです。なりすまし。ウィンドウサービスにアクセスするための適切な権利と許可を持つユーザー資格情報を使用して、アプリケーション/コードの一部を偽装する必要があります。

asp.netのこのブログ エントリを参照 してください。

于 2016-04-29T10:51:02.963 に答える
2

Knelis は正しいです。それを行うには別のプロセスが必要だと思います。おそらく、ローカル システムで実行され、Windows サービスを制御するための wcf サービスを提供する独自の Windows サービスと、Web アプリが wcf サービスを呼び出すことができます。

于 2016-04-29T10:47:17.397 に答える