Я как бы в тупике с этим, и надеялся, что найду здесь несколько ответов.WCF-связь между двумя серверами сбоев после процесса обработки IIS7
В принципе, у меня есть приложение ASP.NET, работающее на двух серверах. Сервер A имеет всю доступную бизнес-логику/доступ к данным в виде веб-сервисов, а на сервере B есть веб-сайт, который говорит об этих услугах (через WCF с привязкой net.tcp).
Эта проблема возникает через несколько секунд после того, как IIS на сервере A. перезагружается мой пул приложений. Повторное использование происходит после отведенного времени (с использованием по умолчанию 29 часов в IIS).
В журнале сервера (сервера из A):
рабочий процесс с идентификатором процесса «####» выступающей пул приложений «AppPoolName» запросил рецикл , потому что рабочий процесс достиг своего допустимого предела обработки.
Я считаю, что это нормальное поведение. Проблема заключается в том, что через несколько секунд, я получаю это исключение на сервер B:
Этого канал больше не может быть использован для отправки сообщений в качестве выходной сессии было автоматически закрыт в связи с сервером инициируемых неисправность. Либо отключите автозакрытие, установив DispatchRuntime.AutomaticInputSessionShutdown на false или рассмотрите возможность изменения протокола выключения с удаленного сервера .
Это не происходит при каждой переработке; Я предполагаю, что это происходит, когда кто-то попадает на сайт с запросом WHILE, когда происходит рециркуляция.
Кроме того, мое заявление не работает до тех пор, пока я не вмешаюсь; это исключение продолжает возникать каждый раз, когда на страницу делается следующий запрос. Я вмешиваюсь, редактируя web.config (добавив пробел или что-то доброкачественное в конец файла) и сохраняя его. Я предполагаю, что это заставляет мое приложение перекомпилировать и возвращает службы обратно. Я также экспериментировал с запуском пакетного файла, который делает это для меня каждый раз, когда исключение происходит;)
Теперь я едва мог найти информацию об этом исключении, и я искал какое-то время. Большая часть информации, которую я нашел, относится к настройкам WCF, которые я не использую.
Я уже прочитал «DispatchRuntime.AutomaticInputSessionShutdown», и я не думаю, что это относится к этой ситуации. Это конкретное свойство относится к отключению службы автоматически в ответ на поведение на стороне клиента, что не является тем, что здесь происходит. Здесь служба отключается из-за IIS.
Я прочитал this, который прошел через какую-то работу, чтобы автоматически вернуть службу, но я действительно хочу понять, что здесь происходит, а не взламывать ее!
Я начал играть с настройками в IIS7, в частности включив/выключив Overlapped Recycling и увеличив время запуска/завершения процесса. Мне интересно, можно ли полностью отключить рециркуляцию (я полагаю, что если я поставлю 0 для временного интервала рециркуляции?) Но опять же, я хочу знать, что происходит!
В любом случае, если вам нужна дополнительная информация, то дайте мне знать. Заранее спасибо!
Я столкнулся с той же проблемой. Вы нашли решение? Принятый ответ, похоже, не для меня. –