RemoteOnly
Web構成でカスタムエラーが設定されている場合(これは、MVCglobal.asax
のアプリケーションレベルのエラーイベントがエラー時に発生しないことを意味Application_Error
しますか?
アプリケーションで特定のエラーが発生し、サイトをリモートで表示しているときに、エラーがログに記録されないことに気づきました。ただし、サーバー上のアプリにアクセスしているときに同じエラーが発生すると、エラーがログに記録されます。
これは、カスタムエラー構成設定です。
<customErrors defaultRedirect="/Error/Application" mode="RemoteOnly">
<error statusCode="403" redirect="/error/forbidden"/>
<error statusCode="404" redirect="/error/notfound"/>
<error statusCode="500" redirect="/error/application"/>
</customErrors>
編集
人々の興味から-私はカスタムエラーを完全にオフにし、次のApplication_Error
ようにリダイレクトを処理することになりました:
protected void Application_Error(object sender, EventArgs e)
{
Exception exception = Server.GetLastError();
// ... log error here
var httpEx = exception as HttpException;
if (httpEx != null && httpEx.GetHttpCode() == 403)
{
Response.Redirect("/youraccount/error/forbidden", true);
}
else if (httpEx != null && httpEx.GetHttpCode() == 404)
{
Response.Redirect("/youraccount/error/notfound", true);
}
else
{
Response.Redirect("/youraccount/error/application", true);
}
}