asp.net-mvc – 配置Magical Unicorn Mvc错误工具包
发布时间:2020-12-16 03:42:08 所属栏目:asp.Net 来源:网络整理
导读:我试图在我的MVC4网站上配置Magical Unicorn Mvc Error Toolkit(v 2.1.2),但我无法让它工作.这是我的代码: Web.config文件 customErrors mode="On" redirectMode="ResponseRewrite" defaultRedirect="~/Error/ServerError" error statusCode="404" redirect
我试图在我的MVC4网站上配置Magical Unicorn Mvc Error Toolkit(v 2.1.2),但我无法让它工作.这是我的代码:
Web.config文件 <customErrors mode="On" redirectMode="ResponseRewrite" defaultRedirect="~/Error/ServerError"> <error statusCode="404" redirect="~/Views/Error/NotFound.cshtml" /> </customErrors> <system.webServer> <httpErrors errorMode="Custom" existingResponse="Replace"> <remove statusCode="404" subStatusCode="-1" /> <remove statusCode="500" subStatusCode="-1" /> <error statusCode="404" path="~/Error/NotFound" responseMode="ExecuteURL" /> <error statusCode="500" path="~/Error/ServerError" responseMode="ExecuteURL" /> </httpErrors> <system.webServer> 错误控制器 public class ErrorController : Controller { public ActionResult NotFound() { Response.StatusCode = (int)HttpStatusCode.NotFound; return View(); } public ActionResult ServerError() { Response.StatusCode = (int)HttpStatusCode.InternalServerError; return View(); } } [这些基于这篇https://stackoverflow.com/a/7499406/236860帖子] CustomerErrorHandler.cs(App_Start) using Microsoft.Web.Infrastructure.DynamicModuleHelper; using WorldDomination.Web.Mvc; using CustomErrors.App_Start; [assembly: WebActivator.PreApplicationStartMethod(typeof(CustomErrorHander),"PreStart")] namespace CustomErrors.App_Start { public static class CustomErrorHander { public static void PreStart() { // Register the custom error handling module. DynamicModuleUtility.RegisterModule(typeof (CustomErrorHandlingModule)); } } } 我正在使用IIS Express在Visual Studio 2012中测试此应用程序.如果我尝试导航到不存在的页面,或者转到调用异常的操作方法,我将获得默认的浏览器错误页面或空白页面. 我也修改了上面的代码,如ASP.NET MVC Custom Error Pages with Magical Unicorn所示,但这似乎没有任何区别. 任何人都可以指出我正确的方向来让这个工作. 解决方法
最后,我无法使用Magical Unicorn Mvc Error Toolkit.好消息是我认为不得不这样做!由于我将MVC应用程序部署到IIS 7.5 Web服务器,因此我可以使用Web.config的更高版本的system.webServer.httpErrors部分和自定义错误控制器.
Web.Config中 <system.web> <httpRuntime targetFramework="4.5" /> <compilation debug="false" targetFramework="4.5"> <customErrors mode="Off" /> <!-- IMPORTANT --> ... </system.web> <system.webServer> <httpErrors errorMode="Custom" existingResponse="Replace"> <remove statusCode="403" /> <error statusCode="403" responseMode="ExecuteURL" path="/Error/AccessDenied" /> <remove statusCode="404" /> <error statusCode="404" responseMode="ExecuteURL" path="/Error/NotFound" /> <remove statusCode="500" /> <error statusCode="500" responseMode="ExecuteURL" path="/Error/ApplicationError" /> </httpErrors> ... </system.webServer> 错误控制器 public class ErrorController : Controller { public ActionResult AccessDenied() { Response.StatusCode = (int)HttpStatusCode.Forbidden; Response.TrySkipIisCustomErrors = true; if (Request.IsAjaxRequest()) { // return Json friendly response here } return View(); } public ActionResult NotFound() { Response.StatusCode = (int)HttpStatusCode.NotFound; Response.TrySkipIisCustomErrors = true; if (Request.IsAjaxRequest()) { // return Json friendly response here } return View(); } public ActionResult ApplicationError() { Response.StatusCode = (int)HttpStatusCode.InternalServerError; Response.TrySkipIisCustomErrors = true; if (Request.IsAjaxRequest()) { // return Json friendly response here } return View(); } } >这一切似乎与IIS Express和IIS 7.5一起使用.> Elmah记录错误,而不对默认错误过滤器进行任何更改.> Fiddler还建议正确维护正确的HTTP状态代码. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 使用OpenOAuthProvider通过Google进行身份验证
- Asp.NET Core+ABP框架+IdentityServer4+MySQL+Ext JS之显示
- asp.net – 在执行计时器滴答功能时避免回发
- asp.net-mvc – 使用IoC在Controller中注入HttpContextBase
- 树莓派-远程逗猫(二) —— 摄像头连接
- 用ASP.net检测iPad
- asp.net mvc 之旅—— 第三站 路由模板中强大的自定义IRou
- asp.net文件上载在加载页面时重置了与服务器的连接
- asp.net-mvc – 被劫持的Umbraco HttpPost动作没有开火
- asp.net-mvc – 在Html.BeginForm()中使用RouteValueDicton
推荐文章
站长推荐
热点阅读