Мой сайт настроен на отображение пользовательской HTML-страницы при возникновении ошибки. Это прекрасно работает как на IIS, так и на ASP.NET Development Server. Однако, как только я разверну приложение в Windows Azure, я получу HTTP 500 вместо 404 для не ASP.NET-URL.
Вот так выглядят соответствующие разделы web.config:
<httpErrors errorMode="Custom">
<clear />
<error statusCode="404" path="/Public/Error404.html" responseMode="ExecuteURL" />
</httpErrors>
<customErrors defaultRedirect="/Public/Error.html" mode="On">
<error redirect="/Public/Error404.html" statusCode="404" />
</customErrors>
Раздел customErrors
(применяется к URL-адресам, заканчивающимся на .aspx) работает правильно. Раздел httpErrors
, однако, не. Несмотря на то, что IIS Azure отправляет 500 в браузер, он регистрирует 404:
2012-02-10 13:30:07 W3SVC1273337584 RD00155D3A1439 10.61.70.39 GET
/ asdfdsaafds - 80 - 65.52.128.172 HTTP / 1.1
Mozilla / 4.0 + (совместим + MSIE + 8.0 + Windows + NT + 6,1 + WOW64 + Trident / 4.0; + SLCC2; +. NET + CLR + 2.0.50727 +. NET + CLR + 3.5.30729; + .NET + CLR + 3.0.30729; +. NET4.0C; +. NET4.0E) - - 940af2dbd9df4924b87a13878752aee3.cloudapp.net 404 0 2 222 457 218
Локально, я получаю HTTP 500.19 с более подробной информацией:
Запрошенная страница недоступна, потому что
Недопустимые данные конфигурации для страницы.
Ошибка блокировки конфигурации Config
238: <httpErrors errorMode="Custom" defaultPath="/Public/Error.html" existingResponse="Replace" defaultResponseMode="ExecuteURL">
Нарушение блокировки Google не сильно мне помогло, так как результаты обычно говорили мне об автономном IIS. В журнале событий Windows нет ошибок.
Я хотел бы отобразить Error404.html
для любых 404 как в Azure, так и в автономном IIS. Любая помощь будет великолепна.