【问题标题】:How to redirect user to a default error page when exception is raised in application_start?在 application_start 中引发异常时如何将用户重定向到默认错误页面?
【发布时间】:2011-12-21 14:02:43
【问题描述】:

当 global.asax 的 application_start 方法引发异常时,是否有办法将用户重定向到错误页面(视图)?当我尝试进行重定向时,我收到 Request object is null 消息。我将如何处理?如果不满足某些条件并且我希望用户转到特定视图,我必须提出异常。
顺便说一句,我的应用程序是基于 MVC3 的。

谢谢

【问题讨论】:

    标签: asp.net-mvc-3 exception-handling global-asax


    【解决方案1】:

    Application_Start 发生在 ASP.Net 开始处理请求之前。

    您可以设置一个全局静态标志来指示错误情况,然后处理BeginRequest并检查该标志并重定向。

    【讨论】:

    • 感谢 SLaks 的建议。在其他人有同样的问题,我在 global.asax 中创建了一个静态变量 NoLicenseFound 并在异常处理程序中将此值设置为 true。我添加了以下代码 protected void Application_BeginRequest(object sender, EventArgs e) { if (noValidLicense) { string path = Request.ApplicationPath.ToString(); Context.RewritePath(path + "/Errors/Error/NoLicense"); } }
    【解决方案2】:

    您可以参考this页面。

    您尝试做的事情可以通过Web.config 完成,只需显示发生 http 错误 500 时要加载的页面。

    编辑

    抱歉给错了网址

    【讨论】:

    • 嗨,我已经使用 customErrors 获得了 404 和 500 的错误处理程序。但这是一个特殊情况(许可),我需要能够将用户重定向到一个特殊的错误页面而不是 500 页面。
    • 您是否使用带有应用程序池集成管道的 IIS 7?
    猜你喜欢
    • 1970-01-01
    • 2015-01-04
    • 2011-08-07
    • 2012-09-11
    • 2013-04-11
    • 2020-06-08
    • 1970-01-01
    • 2013-11-25
    • 2012-01-03
    相关资源
    最近更新 更多