-PR-
締切り
済み

webサーバ上でEXEを起動するには?

  • すぐに回答を!
  • 質問No.7733144
  • 閲覧数618
  • ありがとう数0
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 25% (8/31)

Visual Studio 2005でC#を使いWEBアプリ制作中です。
制作したWEBアプリが時々おかしくなり、WWWサービスを再起動すると元通りに直ります。
おかしな動作をするときはtry catchで検出できていますので
catchの中でWWWサービスを再起動させようと思い下記を実行しましたが、再起動しません。
  prog.StartInfo.FileName = "NET";
  prog.StartInfo.Arguments = "STOP W3SVC";
  prog.Start();
  prog.StartInfo.FileName = "NET";
  prog.StartInfo.Arguments = "START W3SVC";
  prog.Start();
Windowsアプリではこれで再起動します。
Webアプリは何か方法があるのでしょうか?
よろしくお願いします。
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全2件)

  • 回答No.1
レベル11

ベストアンサー率 80% (153/191)

さすがに通常の実行権限(IUSRやNetworkService)でサービスプロセスを停止させるのは無理かと。 それができると、セキュリティ的に神も仏もないよね。 解決策は。。利用者権限をAdmini権限に偽装するか、確実なのは管理者権限で動作するWindowsサービスを別に作って、WCF経由でリモートオブジェクトとして実行すれば。 (Webサーバ側をクライアントとして動作させる) どうしてもWebから外 ...続きを読む
さすがに通常の実行権限(IUSRやNetworkService)でサービスプロセスを停止させるのは無理かと。
それができると、セキュリティ的に神も仏もないよね。

解決策は。。利用者権限をAdmini権限に偽装するか、確実なのは管理者権限で動作するWindowsサービスを別に作って、WCF経由でリモートオブジェクトとして実行すれば。
(Webサーバ側をクライアントとして動作させる)
どうしてもWebから外部のリソースを操作する必要があるとき、使う方法です。

.NET Framework4とIIS7.5にすると、プロセス保護が強力になって、WWW再起動といった最悪の手段は防げると思うのですが。。I/Oとかからんでるとやっぱり難しいかな。
  • 回答No.2
レベル11

ベストアンサー率 81% (127/155)

んー、本来はなぜ問題がでるか、をきちんと調べるべきでしょうが。 WWWサービスまでいかずに、Webアプリとしての再起動でクリアできるのであれば、実行時ユーザーに権限与えたうえでweb.config書き換えるとか、もうちょっと影響あたえない範囲でWebアプリが再起動するレベルのファイル書き換えしてみるのもひとつの手かも。 あと、IISの設定で毎晩アプリケーションプールのリサイクル実行するとか。。。
んー、本来はなぜ問題がでるか、をきちんと調べるべきでしょうが。

WWWサービスまでいかずに、Webアプリとしての再起動でクリアできるのであれば、実行時ユーザーに権限与えたうえでweb.config書き換えるとか、もうちょっと影響あたえない範囲でWebアプリが再起動するレベルのファイル書き換えしてみるのもひとつの手かも。
あと、IISの設定で毎晩アプリケーションプールのリサイクル実行するとか。。。
このQ&Aのテーマ
このQ&Aで解決しましたか?
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ