Почему IIS Express использует <system.web>, а не <system.webServer>? - PullRequest
8 голосов
/ 03 марта 2012

Использовал 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 больше не перенаправляют на мою симпатичную страницу "NotFound".

AppPool, используемый для моего сайта, Clr4IntegratedAppPool, который позволяет мне знать, что он не использует Classic.

Почему IISExpress так зависитsystem.web, тогда как IIS 7.5 использует system.webServer?

1 Ответ

7 голосов
/ 04 марта 2012

Ну, я пробовал несколько разных вещей:

  • Изменено existingResponse на PassThrough как отмечено здесь

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

Неа!

  • Установить TrySkipIisCustomErrors = false, как отмечено в комментариях здесь

Нота!

В итоге я заставил его работать, просто изменив existingResponse на Replace.

  • Кто знал!

Вот как 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>

Почему это решение не имеет смысла

Заменить - это значение заставляет пользовательский модуль ошибок всегда заменять информация об ошибке с текстом, сгенерированным модулем пользовательских ошибок. Если Для существующего ответа установлено значение «Заменить», ошибки / исключения генерируются Asp.Net/WCF заменены ошибками IIS7.

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

...