asp.net-mvc
HTTPエラー処理
サーチ…
前書き
すべてのウェブサイトはエラーを処理する必要があります。あなたは、ユーザーに、IISが料理するストック404または500のエラーページを表示させたり、Web.Configとシンプルなコントローラを使用して、これらのエラーをキャプチャして独自のカスタムエラーページを提供することができます。
基本設定
この例では、404 Page Not Foundおよび500 Server Errorのカスタムエラーページの作成について説明します。このコードを拡張して、必要なエラーコードをキャプチャすることができます。
Web.Config
IIS7以上を使用している場合は、 <CustomError..
nodeを無視し、代わりに<httpErrors...
使用してください。
system.webServer
ノードに次のsystem.webServer
を追加します。
<httpErrors errorMode="Custom" existingResponse="Replace">
<remove statusCode="404" />
<remove statusCode="500" />
<error statusCode="404" path="/error/notfound" responseMode="ExecuteURL" />
<error statusCode="500" path="/error/servererror" responseMode="ExecuteURL" />
</httpErrors>
これは、404エラーを~/error/notfound
に、500エラーを~/error/servererror
ます。また、リクエストされたURL( リダイレクトではなく転送 )を保存するので、ユーザーは~/error/...
ページURLを見ることはありません。
次に、新しいError
コントローラが必要です。
public class ErrorController : Controller
{
public ActionResult servererror()
{
Response.TrySkipIisCustomErrors = true;
Response.StatusCode = (int)HttpStatusCode.InternalServerError;
return View();
}
public ActionResult notfound()
{
Response.TrySkipIisCustomErrors = true;
Response.StatusCode = (int)HttpStatusCode.NotFound;
return View();
}
}
ここで重要なのは、 Response.TrySkipIisCustomErrors = true;
。これはIISをバイパスし、エラーページを強制的に通過させます。
最後に、対応するNotFound
ビューとServerError
ビューを作成し、それらのスタイルを設定して、サイトのデザインにNotFound
シームレスに表示します。
ちょっと前のカスタムエラーページ。
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow