是什么导致在ASP.NET MVC / IIS上删除明文“您正在寻找的资源”

时间:2017-01-04 22:28:49

标签: c# asp.net model-view-controller error-handling iis-8

我的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。任何指针都是?

0 个答案:

没有答案