Раздел конфигурации httpErrors не работает в Windows Azure - PullRequest
2 голосов
/ 10 февраля 2012

Мой сайт настроен на отображение пользовательской 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. Любая помощь будет великолепна.

1 Ответ

4 голосов
/ 10 февраля 2012

Ну, очевидный вопрос: вы убедились, что ваша пользовательская страница ошибок действительно развернута в вашем экземпляре Azure Web Role?

Второй вопрос: работает ли он в эмуляторе Azure?

Обновление:
Сообщение об ошибке указывает, что раздел конфигурации заблокирован на ваших целевых II.
Прочтите это Введение в ApplicationHost.config .Вам, вероятно, нужно разблокировать раздел httpErrors.

Кроме того, посмотрите на это решение на похожую ошибку.

...