■85284 / inTopicNo.1) |
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)); }
|
|