web-dev-qa-db-ja.com

IIS7でデバッグがタイムアウトし続けるのはなぜですか?

Windows 7 IIS7マシンでデバッグしているとき、デバッグ中に次のエラーが発生します。

デバッグされていたWebサーバープロセスはIISによって終了されました。これは、IISでアプリケーションプール設定を構成することで回避できます。詳細についてはヘルプを参照してください。

何が悪いのですか?

50
mrblah

死んだ画像リンク

デバッグ中は、IISは、コードのステップ実行が完了するまで、他の要求を処理しません。これには、IISが送信する「ping」要求が含まれますIISはそれ自体からの応答がないため、自分自身をシャットダウンすることを決定し、デバッグを即座に終了します。

解決策は、アプリケーションプール設定のPing最大応答時間をデフォルト値の90秒から増やすことです。コードをデバッグするのに十分な時間(300秒など)に設定します。

Microsoftは、長々とした書きかけ here を持っています。

-

編集:「Pingを有効にする」をfalseに設定することを提案する人もいます。間隔を広げるだけでそれを維持したい理由はいくつかありますが、最も重要なことは、(おそらく)本番環境でワーカー処理のpingを有効にすることであり、構成での開発とデバッグに努力する必要がありますそれは可能な限り生産に近いです。本番環境でpingを有効にしていない場合は、ローカルでも無効にしてください。

92
Portman
15
Ana Betts

IISには、IISワーカープロセスがハングしているか、それ以外の方法で使用できないかどうかを定期的にチェックするヘルスチェック機能があります。デバッガーでワーカープロセスが停止している場合、IISの観点からは正常ではないように見えます、およびIISはそれを強制終了し、新しいプロセスを起動します。

この動作を変更するには(開発ワークステーションで、これを運用環境で無効にしたくない!)IIS管理ツール)に移動し、左側のペインで[アプリケーションプール]ノードを選択して、右-アプリが存在するアプリプールをクリックし、[詳細設定]を選択します。そこから、[プロセスモデル]セクションで、[Ping有効]をFalseに設定します。アイドルタイムアウトをaに設定することもできます。非常に多数。

この問題の詳細とスクリーンショットについては、 このIIS.NETの記事 を参照してください。管理ツールの外部でコード/スクリプトを使用してこれらの設定を行う方法については、 このTechNet記事 を参照してください。

2
Justin Grant

Microsoftのscomを実行し、作業場所で構成した場合(これはおもしろいプロジェクトではないと想定)、そのための管理パックを作成したり、誰かを知っている場合は、問題の原因を特定するのに役立ちます。私はそれがロングショットであることを理解していますが、それがあなたのシナリオを説明している場合、他の解決策が見つからない場合に私がすることです。

0
tb.