8

使用 Cassini 但切换到 IIS Express。我最初的想法是我可以删除<system.web>除以下内容之外的所有内容:

<authentication mode="Forms">
  <forms loginUrl="/" />
</authentication>

我以前customErrors的设置是这样的:

<customErrors mode="On" defaultRedirect="/ServerError">
  <error statusCode="404" redirect="/NotFound" />
</customErrors>

customErrors当我切换到 IISExpress 时,我删除了这个元素。现在 404 不再重定向到我漂亮的“未找到”页面。

用于我的网站的 AppPoolClr4IntegratedAppPool让我知道它没有使用 Classic。

为什么 IISExpress 如此依赖system.web而 IIS 7.5 使用system.webServer

4

1 回答 1

7

好吧,我尝试了一些不同的方法:

  • 更改existingResponsePassThroughhere所述

    <httpErrors errorMode="Custom" existingResponse="Replace">

没有!

  • 设置TrySkipIisCustomErrors=false如评论中所述

不!

我最终通过简单地将其更改existingResponseReplace.

  • 谁知道!

这是system.webServer现在的样子:

<httpErrors errorMode="Custom" existingResponse="Replace">
        <remove statusCode="404" subStatusCode="-1" />
        <error statusCode="404" path="/NotFound" responseMode="ExecuteURL" />
        <remove statusCode="500" subStatusCode="-1" />
        <error statusCode="500" path="/ServerError" responseMode="ExecuteURL" />
    </httpErrors>

为什么这个解决方案没有任何意义

Replace - 此值使自定义错误模块始终将错误信息替换为自定义错误模块生成的文本。如果现有响应设置为“替换”,则由 Asp.Net/WCF 生成的错误/异常将被 IIS7 错误替换。

http://blogs.iis.net/ksingla/archive/2008/02/18/what-to-expect-from-iis7-custom-error-module.aspx

于 2012-03-04T04:28:19.833 回答