C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


■85284 / )  C# MVCでエラーページを統一したい
□投稿者/ はな (11回)-(2017/10/03(Tue) 11:35:03)

分類:[ASP.NET (C#)] 

MVC 4
.Net フレームワーク 4
Windows Server 2008 R2
IIS 7
Visual Studio 2013
C#
で開発してます。

エラー処理をGlobal.asax.csのApplication_Errorに記述してます。

http://localhost/hogehoge
でエラー発生したときは意図したページが表示されますが
http://サーバ/hogehoge
でエラー発生したときは
Views/Shared/Error.aspx
のページが表示されてしまいます。

localhostとサーバで同じページを表示するにはどうしたらいいでしょうか?
Error.aspxはエラー内容が表示されない静的なページなので、サーバにアクセスした場合もエラー内容を表示したいです。

protected void Application_Error(Object sender, EventArgs e)
{
Exception exception = Server.GetLastError();
if (exception == null) {
return;
}

try {
// ログ出力
} catch (Exception ex) {
}

Server.ClearError();

HttpContext httpContext = ((MvcApplication)sender).Context;
httpContext.ClearError();
httpContext.Response.Clear();
httpContext.Response.StatusCode = 200;
httpContext.Response.TrySkipIisCustomErrors = true;
RouteData routeData = new RouteData();
routeData.Values["action"] = "showError";
routeData.Values["controller"] = "Login";
routeData.Values["message"] = exception.Message;
routeData.Values["stackTrace"] = exception.StackTrace;
Controller controller = new LoginController();
((IController)controller).Execute(new RequestContext(new HttpContextWrapper(httpContext), routeData));
}

返信 編集キー/


管理者用

- Child Tree -