为什么Application_Error无法处理一些错误?

时间:2015-02-28 08:00:39

标签: asp.net-mvc-4 iis-7

我开发了一个网站(MVC 5)并将其上传到网络服务器上的iis7上。 我处理方法错误

protected void Application_Error(){}
Global.asax上的

。 昨天我做了一些测试,当我输入这个网址时我看到了

http://www.xxxx.com/.

我可以在Application_Error方法上获得无效的溃败,但是当我输入带有3dotes或更多像这个URL的URL时

http://www.xxxx.com/...

我看到一个包含此内容的网页,而Application_Error不起作用,因为我的项目中没有包含此内容的默认页面或视图。

The page cannot be displayed because an internal server error has occurred.

我在互联网上的另一个网站上做了一些测试,我看到一些主题有相同的问题,我想我应该在我的IIS上做一些配置。

如果是,我应该在我的IIS上设置什么配置,如果没有我可以用我的项目做什么,直到我能处理它?<​​/ p>

1 个答案:

答案 0 :(得分:-1)

您可以在 web.config 文件中尝试此配置:

   <customErrors mode="On|Off|RemoteOnly" defaultRedirect="URL">
      <error statusCode="404" redirect="URL" />
      <error statusCode="402" redirect="URL" />
      <error statusCode="500" redirect="URL" />
   </customErrors>

示例
我使用以下ActionResult创建了 ErrorHandlerController

//This action return a view that show the http error you specified.
public ActionResult Error()
{
    return View();
}

//This action return a view that show the 404 http error captured.
public ActionResult NotFoud()
{
    return View();
}

//This action return a view that show the 402 http error captured.
public ActionResult Unauthorized()
{
    return View();
}


在我的项目的web.config文件中:

<customErrors mode="RemoteOnly" defaultRedirect="~/ErrorHandler/Error">
  <error statusCode="404" redirect="~/ErrorHandler/NotFoud" />
  <error statusCode="402" redirect="~/ErrorHandler/Unauthorized" />
  <error statusCode="500" redirect="~/ErrorHandler/Error" />
</customErrors>

注意:使用所需的CustomURL更改网址。

帮助:https://msdn.microsoft.com/en-us/library/h0hfz6fc%28v=vs.85%29.aspx