「データ実行防止」により、Vista 64 上のローカル ASP.Net 開発サーバー (別名 Cassini) が強制終了 (VS2008)

StackOverflow https://stackoverflow.com/questions/19349

  •  09-06-2019
  •  | 
  •  

質問

時折、ASP.Net アプリケーション (Visual Studio 2008 で作成され、Vista 64 ビットで実行されている) をデバッグしているときに、ローカルの ASP.Net 開発サーバー (つまり、「カッシーニ」) が応答を停止します。

「データ実行防止 (DEP) が WebDev.WebServer.exe を強制終了した」というメッセージが頻繁に表示されます。

イベント ログには、「WebDev.WebServer.exe が動作を停止しました」というメッセージが表示されるだけです。

Vista 64 ビットでは DEP がデフォルトでオンになっているため、この「問題」がより頻繁に発生すると聞いています。したがって、DEP をオフにすると問題が「解決」される可能性があります。

しかし、私は疑問に思っています:

DEP がプロセスを強制終了させる既知のバグや状況が Cassini にありますか?

あるいは、データ実行防止を無効にすることによる実際的な危険性は何ですか?

役に立ちましたか?

解決

確実に知る唯一の方法は、Cassini ソースを調べて、ヒープ上にコードを生成し、NX フラグをクリアせずにそれを実行する領域があるかどうかを確認することです。

しかし、その代わりに IIS を使用してみてはいかがでしょうか。

編集:

DEP を無効にすると、セキュリティ ホールが開いてしまう危険があります。DEP は、ヒープ上で任意に生成されたコードの実行を許可しないことで機能します。これは、マルウェア プログラムが正規のプログラムのデータ セグメントにコードを挿入するのを防ぐのに役立ちます。

他のヒント

あなたは vista を使っていますが、iis は改善されました (7)、cassini はひどいままでした。

したがって、ホスト ヘッダーとホスト ファイル エントリを使用して、iis 上でこのアプリを起動するだけです。

必要に応じて、特定のプログラムを DEP から除外することを許可できます。

として ジョナサン

これにより、アプリケーションが持つ可能性のある脆弱性が発生する可能性があると述べています。

Visual Studio で IIS を使用することは、1.1/VS02/03 の頃のように面倒ではありません。Cassini サーバーよりも IIS を好む正当な理由はたくさんあります (記事: ドミニク・ベイヤー):

カッシーニは有害と考えられている
カッシーニをお勧めしないもう一つの理由

Dominick は、IIS とセキュリティに関しては「一流」です。

Web アプリに IIS を使用する場合、私は常に最初に IIS でアプリを作成し、それを好みのフォルダーに指定してから、VS にプロジェクトを作成させます。つまり、c:\inetpub\wwwroot が Web アプリで乱雑になることはありません。

もちろん、現在は IISExpress を使用しています。これは、IIS7.x をターゲットにしている場合、Visual Studio で ASP.NET アプリケーションを開発するための当然の選択肢です。

ご回答ありがとうございます。おそらく、私は .net 1.x の時代に IIS に対する嫌悪感を抱き、今に至るまで IIS の再利用を検討することを拒否していたのだと思います。

余談:ChanChan と Jonathan からの 2 つの同様に受け入れられる回答のどちらかを選択するとき、a) 彼が最初に合格し、b) 彼の担当者が現在低いため、私はジョナサンの回答を任意に「受け入れ」とマークしました。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top