Пользовательский 404 IIS7 не отображается

создали новый веб-сайт IIS7 с пулом приложений Intergrated .net 4.0.

URL-адреса, заканчивающиеся на .aspx, действительно показывают настраиваемый 404, все остальное дает синюю страницу ошибки сервера «Ошибка HTTP 404.0 - не найдено Ресурс, который вы ищете, был удален, изменено его название или временно недоступен ". (так что ничего общего с IE)

<customErrors redirectMode="ResponseRewrite" mode="On" defaultRedirect="/pages/404.aspx" />
</system.web>
<system.webServer>
    <httpErrors  >
        <remove statusCode="404" subStatusCode="-1" />
        <error statusCode="404" prefixLanguageFilePath="" path="/pages/404.aspx" responseMode="ExecuteURL" />
    </httpErrors>
</system.webServer>

также пробовал

<httpErrors existingResponse="PassThrough" />

, но это привело к пустому ответу.

Я нашел только одну ссылку на полезность выполнения appcmd для проверки пользовательской обработки ошибок http, но здесь результаты.

C:\Windows\System32\inetsrv>appcmd list config "http://mysite/file.notexist" -section:httpErrors

<system.webServer>
    <httpErrors>
        <error statusCode="401" prefixLanguageFilePath="%SystemDrive%\inetpub\custer
r" path="401.htm" />
        <error statusCode="403" prefixLanguageFilePath="%SystemDrive%\inetpub\custer
r" path="403.htm" />
        <error statusCode="404" prefixLanguageFilePath="%SystemDrive%\inetpub\custer
r" path="404.htm" />
        <error statusCode="405" prefixLanguageFilePath="%SystemDrive%\inetpub\custer
r" path="405.htm" />
        <error statusCode="406" prefixLanguageFilePath="%SystemDrive%\inetpub\custer
r" path="406.htm" />
        <error statusCode="412" prefixLanguageFilePath="%SystemDrive%\inetpub\custer
r" path="412.htm" />
        <error statusCode="500" prefixLanguageFilePath="%SystemDrive%\inetpub\custer
r" path="500.htm" />
        <error statusCode="501" prefixLanguageFilePath="%SystemDrive%\inetpub\custer
r" path="501.htm" />
        <error statusCode="502" prefixLanguageFilePath="%SystemDrive%\inetpub\custer
r" path="502.htm" />
    </httpErrors>
</system.webServer>

что странно, потому что в диспетчере iis7 страницы ошибок показывают

404 /pages/404.aspx Execute URL Local

.Net Error Pages ничего не показывают, хотя у меня там была запись.

Вопрос 1: какие шаги мне нужно предпринять чтобы совершенно новый сайт asp .net 4 iis7 имел настраиваемую страницу ошибок .net для каждого результата 404?

Вопрос 2: почему обработчик .net работает для файлов .aspx и ничего другого?

примечание:установите 404 на уровне сервера, и команда appcmd затем показала пользовательский 404 в пути, но не повлияла на то, что сайт не показывает 404.

Так что я предполагаю, что это отвлекающий маневр.

41
задан rob 11 July 2011 в 09:38
поделиться