Давеча переносил приложение с одного сервера на другой. Соответственно с IIS6 на IIS7. IIS7 - понравился, немножко непривычно после IIS6 - но в целом позитвное впечатление.
А теперь о печалном...
После успешного переноса, решил проверить как все работает. Запустил приложение, проверил определенную фунциональность и тут нате:
"Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached."
Ну думаю все понятно - не закрытые соединения к базе. Проверяю соединения к базе - 100 активных соединений!!! Быстренько вспомнил что делал на сайте и сориентировался в коде что и где... И действительно, в 15(!!!) местах соединение не закрывается. Код не мой, писал подчиненный. И вроде не дурак, может давать хороши и стабильные решения.. НО ТАКОЕ...
Вопрос к космосу - "ДОКОЛЕ БУДЕТ ПРОЦВЕТАТЬ ТАКОЕ РАЗГИЛЬДЯЙСТВО И БЕЗАЛАБЕРНОСТЬ?!"
А теперь о IIS7 - он поймал эту ошибку. А IIS6 хавал и проглатывал, в результате чего страдала производительность. Такие дела.
Камрад, мысль снизошла на меня...
ОтветитьУдалитьА какая модель сессии у тебя в приложении? "InProc" Возможно это и объясняло безотказную работу на IIS6. Ресурсы закончились --- сессию сбросили, ресурсы освободили. Т.е. точный момент временни сбросса сессии не ведомая величина. С другой стороны, это не объясняет возникновение ошибки в IIS7. Сдаётся мне, надо смотреть настройку пулов приложения... там видать собаку закопали.
в обоих случаях "InProc"
ОтветитьУдалить