如何处理在MVC视图中应用程序启动和传输和显示错误发生的ASP.NET应用程序错误?
我知道ASP.NET MVC有错误过滤器属性来处理指定的错误类型.但是,此功能无法捕获应用程序启动时发生的任何错误.因此,我需要添加一些代码到“Application_Error”方法来处理这个错误,如下面的代码. public void Application_Error(object sender,EventArgs e) { // At this point we have information about the error var ctx = HttpContext.Current; var exception = ctx.Server.GetLastError(); var errorInfo = "<br>Offending URL: " + ctx.Request.Url + "<br>Source: " + exception.Source + "<br>Message: " + exception.Message + "<br>Stack trace: " + exception.StackTrace; ctx.Response.Write(errorInfo); Server.ClearError(); } 虽然,这个代码会正常工作,正常的应用程序错误发生在视图页面中发生的错误.然而,当应用程序启动时发生错误,因为请求和响应对象始终为空,所以不起作用. 接下来,我尝试通过在自定义错误中设置默认重定向来解决这个问题,如下面的代码. <customErrors mode="On" defaultRedirect="Scripts/ApplicationError.htm"></customErrors> 不幸的是,它不起作用,因为当应用程序接收重定向请求时,它尝试重新启动应用程序,并再次抛出异常. 怎么解决这个问题?或者,您是否有其他处理此错误的想法. 谢谢, PS.创建此处理程序的主要原因是因为当应用程序无法连接到其他服务(如数据库)以在应用程序启动时缓存数据时显示错误. 解决方法Application_Error事件中Request和Response对象为null的原因是因为Application_Start事件与任何用户都不相关联,因此您无法从中重定向.只有应用程序和服务器内置的对象可用.引用会话,请求或响应对象将导致错误.一个解决方法是使用try / catch,并在catch块中记录错误并设置一些全局变量,指示应用程序启动过程中出现问题.后来在Application_BeginRequest你可以检查这个变量并相应地重定向. (编辑:十堰站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – ASP.NET Web Api – 将对象发布到自定义动作
- asp.net-web-api – ASP身份OAuth令牌 – 我应该在移动应用
- asp.net – 如何检查SQL Server代理是否正在运行
- 有没有办法将内部控件放在ASP.NET自定义控件中?
- asp.net类序列化生成xml文件实例详解
- .net – 可以为空的枚举类型的奇怪行为
- ASP.Net 2中的上传文件在哪里?
- Asp.NET控制文件上传的大小方法(超简单)
- 如何单元测试我的asp.net-mvc控制器的OnActionExecuting方法
- asp.net-mvc – Umbraco 7自定义cookie
- ASP.Net MVC cookies – 防篡改?
- asp.net mvc webapi 实用的接口加密方法示例
- ASP.NET MVC编辑器模板和Html.EditorFor(…) –
- asp.net-mvc – 使用ASP.NET MVC进行项目组织的最
- asp.net-mvc – 在asp.net mvc中启动一组未选中的
- asp.net-mvc – 如何检查是否为浏览器启用了cook
- 什么是在asp.net中301重定向更推荐的方法?
- asp.net-mvc – ASP.NET MVC Beta 1:DefaultMod
- asp.net – 将web应用程序的项目编译成dll
- ASP.NET清空缓存时遇到的问题简析