Серверное приложение недоступно после обновления до.NET 4.0 и MVC 3. AppPool Recycle исправляет его
С тех пор, как мы установили.NET 4.0 и ASP.NET MVC 3 на наших серверах IIS и развернули наши веб-сайты, мы получаем "Серверное приложение недоступно".
В журнале событий нет журналов, касающихся проблемы.
Мы думаем, что это связано с установкой.NET 4.0 или MVC 3.0, поскольку мы видели, как это происходит на каждом этапе нашего развертывания. Сначала мы обновили нашу среду DEVelopment, затем нашу ACCeptation, и теперь, наконец, мы видим такое же поведение в нашей среде PRoDuction.
Повторное использование пула приложений определенного веб-приложения решает проблему.
У нас не было этого раньше, и мы задаемся вопросом, что могло бы изменить установка MVC 3.0 или.NET 4.0. Все наши веб-серверы работают на IIS6.
Обновление 12-08-2011
Мы заметили еще кое-что: когда у нас один пул приложений, на котором работают три приложения.NET 4. И мы изменили значение в web.config одного из этих приложений, что должно привести к его перезапуску, только это приложение больше не работает, два других по-прежнему работают нормально. Это означает, что автоматическое восстановление никогда не происходит при изменении файла внутри веб-приложения.
2 ответа
Мы обнаружили проблему, это было то, что посторонний человек никогда бы не узнал...
Поскольку мы хотим разделить сеанс между двумя приложениями, мы добавили SharedSessionModule в веб-приложение. Это в основном меняет имя приложения перед тем, как выбрать правильный сеанс из базы данных ASPState. Я получил этот модуль отсюда: http://www.codeproject.com/KB/session/sharedsession.aspx?display=Print
Это работает, но портит внутреннюю часть IIS, вызывая его сбой при переработке appPool.
Есть ли в вашем пуле приложений более одного приложения? Если это так, попробуйте разделить их на разные пулы, так как это может вызвать проблемы, особенно если два приложения используют разные версии.Net.