IIS7と.net4.0を実行しています。長時間実行されているリクエストが原因でサーバーがタイムアウトすると、エラーページが表示されますが、エラーコードは、私が期待している408または503ではなく500です。タイムアウトの場合は別のエラーページを表示したいのですが<customErrors>
、500エラーが発生するだけの場合は、このセクションでこれを構成できません。これは構成の問題ですか?
2002 次
1 に答える
2
このようなコードをglobal.asax.csに追加できます
public class Global : System.Web.HttpApplication
{
protected void Application_Error(Object sender, EventArgs e)
{
Exception ex = HttpContext.Current.Server.GetLastError();
if (ex != null && ex is HttpException && ex.Message == "Request timed out.")
{
HttpContext.Current.Response.StatusCode = 503;
HttpContext.Current.Response.End();
}
}
}
これは正しく機能せず、Response.End()がない場合でも500エラーを返すことがわかりました。あなたの質問を考えると、代わりにリダイレクトを実行して、上記の代わりに503を出力するエラーページを表示するかどうかはわかりません。
その本当にASP.NETは500ステータスを返し、IISはそれを渡しているだけです。
于 2011-03-18T23:51:46.077 に答える