我正在为我的网络应用程序使用最新版本的ASP.NET MVC 5
,它正在IIS 7.5
附带Windows 7
。我正在努力在web.config中实现httpErrors
并在我的错误控制器中达到断点。
我已尝试显示HTML文件并从错误控制器显示视图作为错误消息。这是我在web.config中的当前设置:
<system.webServer>
<httpErrors errorMode="Custom" existingResponse="Replace">
<remove statusCode="404" subStatusCode="-1" />
<remove statusCode="500" subStatusCode="-1" />
<error statusCode="404" path="/Error/Http404" responseMode="ExecuteURL" />
<error statusCode="500" path="Http500.html" responseMode="File" />
</httpErrors>
</system.webServer>
我有一个ErrorController类。 Views下有一个名为Error的目录。在Error目录中有2个文件:
当我输入www.mywebsite.com/foo
时,会发生以下情况:
当我输入www.mywebsite.com/foo.html
时,会发生以下情况:
当我将httpErrors配置更改为以下配置时,将显示我的静态HTML页面,其中找不到正确的HTTP 404错误:
<system.webServer>
<httpErrors errorMode="Custom" existingResponse="Replace">
<remove statusCode="404" subStatusCode="-1" />
<error statusCode="404" path="Http404.html" responseMode="File" />
</httpErrors>
</system.webServer>
我的Application_Error方法中没有任何内容:
protected void Application_Error(object sender, EventArgs e)
{
Exception exception = Server.GetLastError();
}
这就是我的错误控制器的样子:
public class ErrorController : Controller
{
public ActionResult Http404()
{
// Not sure if this is needed?
Response.StatusCode = (int)HttpStatusCode.NotFound;
return View();
}
public ActionResult Http500()
{
// Not sure if this is needed?
Response.StatusCode = (int)HttpStatusCode.InternalServerError;
return View();
}
}
我从web.config中删除了customErrors
配置。
我有以下问题: