#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