IIS не может перезапустить с ошибкой тайм-аута - PullRequest
0 голосов
/ 14 ноября 2018

Когда мы выпускаем новый код в производство, нам часто приходится обновлять файлы .cs в каталоге App_Code. Часто, если в работе есть какие-либо пользователи (и всегда есть некоторые, даже в одночасье), мы получим сообщение об ошибке при загрузке любой страницы приложения:

Сборка 'C: \ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 \ Temporary ASP.NET
Файлы \ root \ a18f28ce \ a6daf424 \ App_Code.dll 'уже загружены в другой домен приложения.

Единственный способ заставить приложение ответить снова - перезапустить IIS. Проблема в том, что IIS часто не сможет вернуться. Мы перезапускаем IIS, зайдя в диспетчер IIS, щелкнув по имени сервера, а затем щелкнув Перезапустить справа. Система будет думать несколько секунд, а затем выдаст ошибку:

Ошибка тайм-аута. Не удалось запустить W3SVC.

Единственное решение на этом этапе - перезапустить сервер, которого мы хотим избежать на рабочем сервере.

Есть ли идеи о том, как устранить ошибку тайм-аута IIS или (в идеале), как избежать ошибки "уже загружен в другой домен приложения"?

Ответы [ 3 ]

0 голосов
/ 14 ноября 2018

Перейдите в Диспетчер задач -> Процессы и вручную остановите процесс W3SVC. После этого процесс должен начаться нормально при перезапуске IIS

Примечание: это также может быть процесс Svchost

Перейти к процессу, чтобы найти правильный svchost для завершения

0 голосов
/ 15 ноября 2018

Более простое / автоматическое решение вышеперечисленного - использовать файл ~ / App_Offline.htm как часть процесса развертывания (функция, встроенная в IIS, поэтому WebDeploy позволяет избежать проблем с блокировкой файлов).

Измените процесс развертывания, чтобы первым шагом было создать App_Offline.htm в webroot. IIS обнаружит этот файл и незамедлительно отключит домен приложения - сняв все блокировки и т. Д. Разверните свое приложение как обычно без каких-либо проблем с блокировкой, а по завершении удалите App_Offline. Следующий запрос, полученный IIS, запустит домен приложения, загружающий только что развернутую версию.

Независимо от содержимого, которое вы помещаете в файл App_Offline.htm, IIS возвращает все запросы до тех пор, пока вы не удалите файл.

0 голосов
/ 14 ноября 2018

Попробуйте перезапустить IIS из командной строки (администратор), используя:

iisreset

или

iisreset / stop

, а затем

iisreset / start

Примечание. Может потребоваться перезапустить рабочий процесс

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...