Ошибка 500.19 только в режиме Web Garden

#iis-7.5 #web-garden

#iis-7.5 #web-garden

Вопрос:

Мой ASP.NET веб-приложение отлично работает в IIS 7.5. Но я хочу убедиться, что оно готово к запуску в веб-ферме. Итак, я включил Web garden на своем компьютере разработчика. (Установите максимальное количество рабочих процессов = 2 в пуле приложений.)

Щелчок по сайту, кажется, проходит нормально, но при любом запросе AJAX я получаю ошибки 500.19. Ошибка похожа:

Запрошенная страница недоступна, поскольку соответствующие данные конфигурации для страницы недопустимы.

Не удается добавить дублирующуюся запись коллекции типа ‘error’ с объединенными ключевыми атрибутами ‘StatusCode, subStatusCode’, для которых соответственно установлено значение ‘404, -1’

В моей веб-конфигурации у меня есть это:

 <system.webServer>
  <httpErrors>
    <error statusCode="404" path="Home/NotFound" />
  </httpErrors>
  

Для меня это выглядит нормально, и я думаю, что это нужно. Но для развлечения я удалил раздел httpErrors. Затем я получаю:

Не удается подключиться к удаленному серверу

Конечно, я просмотрел, как MS устраняет ошибки 500.19. Но я предполагаю, что ошибка является отвлекающим маневром. Проблема как-то связана с моим пулом приложений или моим кодом, или с чем-то другим, о чем говорится в сообщении. Как я уже сказал, все работает отлично с максимальным рабочим процессом 1.

Есть идеи?

ОБНОВЛЕНИЕ: я понял, что вторая ошибка, о которой я упоминал, «Не удается подключиться к удаленному серверу», была реальной ошибкой, вызванной моим приложением. Таким образом, элемент <error> в web.config был причиной ошибки 500.19 (которая маскировала реальную ошибку). И, возможно, мне не нужен этот элемент, потому что у меня есть аналогичный элемент в system.веб, который, кажется, сам по себе оказывает желаемое влияние.

Проблема решена. Тем не менее, я все еще задаюсь вопросом, почему в режиме single worker нет проблем, и это прерывается в режиме web garden?

Комментарии:

1. Можете ли вы опубликовать снимок экрана с этой ошибкой?

2. Когда вы пытались это сделать, пытались ли вы выполнить отладку в Visual Studio или запустить сайт напрямую?

Ответ №1:

В вашем web.config , если вы изменяете пользовательские ошибки, сначала вам нужно удалить существующую пользовательскую ошибку, например:

 <httpErrors>
    <remove statusCode="404" subStatusCode="-1" />
    <error statusCode="404" path="http://google.com" responseMode="Redirect" />
</httpErrors>
  

IIS7 довольно хорош, и подсказка часто содержится в сообщении об ошибке:

Не удается добавить дублирующуюся запись коллекции типа ‘error’ с объединенными ключевыми атрибутами ‘StatusCode, subStatusCode’, для которых соответственно установлено значение ‘404, -1’

Комментарии:

1. Это имеет смысл. Интересно, почему ошибка возникает только там, где есть несколько рабочих процессов.

2. @tim — вы пытались отлаживать приложение из VS в то время, когда это произошло?

Ответ №2:

Для меня это было исправлено путем установки распространяемого c 2015 14.0.23026