私のプロジェクトにはoops.aspxというエラーページがあります。私たちは、global.asax
次のコードを持っている:Global.asaxでエラーが検出されませんでしたか?
protected void Application_Error(object sender, EventArgs e)
{
Server.Transfer("~/oops.aspx", true);
}
oops.aspx
は、エラーを抽出し、サーバーに素敵な電子メールを生成し、ユーザーにエラーメッセージを提示することができます。
Server.Transfer
を使用すると、URL、フォーム情報、その他の役立つトラブルシューティング情報が保持されます。 oops.aspxのある時点で、電子メールを作成しながら、私はRequest.RawUrlを取得し、それを電子メールに含めます。これは、エラーの原因となったページのURL(クエリ文字列パラメータ付き)です。
また、web.configファイルでこれを持っている:システムがこれに基づいて、エラーのリダイレクト場合
<customErrors mode="On" defaultRedirect="oops.aspx"></customErrors>
、それは(時には%2Fパスセパレータと、時々/有する)/oops.aspx?aspxerrorpath=/Clients/EditClient.aspx
にリダイレクト。クエリ文字列と例外情報が失われるため、oops.aspxによって生成された電子メールとメッセージは疎であり、何が起きているかについてはあまり言いません。
最近、この第2種のエラーが多く発生しています。エラーは小さなバンチで発生し、数分で数個、数時間で何も起こりません。それらはサイト全体で発生します(WebResource.axd
などを含む)、これは私たちのサイトの特定のエラーではなく、セッションサーバーの問題などのような低レベルで起こっていると思います。
だから、すべてのことで、私の実際の質問:
私は、彼らがGlobal.asaxので捕捉されないように起こるのサイトにエラーを抱えています。このようなエラーを引き起こす原因は何ですか?トラブルシューティングを行うにはどうしたらいいですか?
Darin「Application_Error」とアプリケーションプールがIntegrated Pipelineモードの関係は何ですか? – VoodooChild
@ VoodooChild、誰かが '/ myapp/foo.jpg'のようにアクセスしようとしたときにIIS 6.0でクラシックモードで実行すると、Application_Errorは決してヒットしません。 ASP.NETはこの要求を通知されません。 IISが直接イメージを提供します。統合パイプラインモードでは、すべての要求がマネージハンドラを経由します。 –