我的ASP.NET MVC Web应用程序在两个不同的主机上运行,其中一个我的自定义404错误,我的文本很好,但另一方面我得到了明文
您要查找的资源已被删除,名称已更改或暂时不可用。
我无法找出造成这种情况的原因。 web.config在所有重要方面几乎都是一样的。我错过了什么?为什么它在两个不同的主机上表现不同?
在web.config中我有
<customErrors mode="Off">
<equal binding="HttpStatusCode" value="404" type="Int32" />
(不确定为什么我甚至有相同的出价......)并且所有内容都是通过返回HttpNotFound ActionResult和默认回退路径来驱动代码。
更具体地说,在一个主机上(而不是另一个主机上)触发此明文的代码在控制器内部
protected override void OnActionExecuted(ActionExecutedContext filterContext)
{
// Some conditions...
filterContext.ExceptionHandled = true;
filterContext.Result = new HttpStatusCodeResult((int)HttpStatusCode.NotFound);
}
然后被捕获
protected void Application_EndRequest()
{
if (Context.Response.StatusCode == 404)
{
Response.ClearContent();
var routeData = new RouteData();
routeData.Values["controller"] = "Error";
routeData.Values["action"] = "NotFound";
Response.TrySkipIisCustomErrors = true;
var errorController = (IController)_unityContainer.Resolve<ErrorController>();
errorController.Execute(new RequestContext(new HttpContextWrapper(Context), routeData));
}
Windows Server 2012上的IIS版本是8.5。任何指针都是?