Ошибка 503. Сервис недоступен. Пул приложений останавливается при доступе к веб-сайту


167

На это есть несколько постов, и я уже много чего перепробовал. Но безрезультатно. Я в основном разработчик Winforms, начал работать над этим веб-материалом несколько дней назад, так как моя компания предпринимает веб-инициативы.

У меня есть проект ASP.Net, и я хочу разместить его на локальном IIS. В Project properties -> Webнастройках я выбрал Use Local IIS Serverи дал URL как localhost/MyApp. Я попытался получить доступ к нему в браузере Firefox и получил сообщение об ошибкеHTTP Error 503. The service is unavailable.

Ранее я получил много других ошибок, и я по одному исправил их все. Но ударил с этим. Это настройки, которые у меня есть в моем проекте

  1. Пул приложений установлен на ASP.Net v4.0 Classic
  2. Enable 32 bit ApplicationСвойство App Pool имеет значение true
  3. Пул приложений запущен
  4. Свойство сборки проекта, установленное Any CPUдля целевой структуры

Но я хотел бы упомянуть странное поведение. Следующее - это то, с чем я сталкиваюсь

  1. Пул приложений запущен
  2. Я пытаюсь получить доступ к своему локальному веб-сайту (указав URL как localhost/MyApp)
  3. Я получаю ошибку как HTTP Error 503. The service is unavailable
  4. Пул приложений остановлен

Я видел следующую ссылку, и я уже попробовал это. Для вышеупомянутого поведения я достиг здесь . По этой ссылке имя компьютера не должно быть .в нем. У меня нет имени .в моем компьютере, но есть -в нем. Также .в нем содержится мое доменное имя . Более того, я не могу изменить эти настройки, так как это мой офисный ноутбук, а наши настройки TFS привязаны к нашим доменным и компьютерным именам.

Может ли кто-нибудь помочь мне понять, что происходит? Пожалуйста, ведите меня. Спасибо.

редактировать

У меня есть следующий код в Global.asax. Application_BeginRequestметод пуст в том же файле.

protected override void Application_Start(object sender, EventArgs e)
{
    base.Application_Start(sender, e);
    String _path = String.Concat(System.AppDomain.CurrentDomain.RelativeSearchPath, ";",
                                         System.Environment.GetEnvironmentVariable("PATH"));
    System.Environment.SetEnvironmentVariable("PATH", _path, EnvironmentVariableTarget.Process);
    MyAppLog.Initialize();
    MyAppLog.WriteMessage("Application Started");
}

Обновить

Согласно предложениям в комментарии, я могу запустить веб-сайт от Кассини.


Есть ли в вашем Global.asax какой-либо код, который запускается при запуске приложения? Что-нибудь, что может застрять в петле? Вы включили, Enable 32 bit Applicationно используете ли вы только 32-битные библиотеки DLL?
CodingIntrigue

Что происходит, когда вы запускаете его в Кассини?
Саймон Уайтхед

@RGraham: у меня установлено свойство сборки проекта Any CPU. Так что я думаю, что использование dll не должно быть проблемой. Пожалуйста, смотрите изменения для кода Global.asax. Спасибо
Сэнди

@SimonWhitehead: Понятия не имею, что такое Кассини. Я скачал его сейчас с cassinidev.codeplex.com . Я вижу некоторые dll и exe в загруженных файлах. Не могли бы вы помочь мне, как его использовать? А пока попробую почитать по этому вопросу из интернет источников.
Сэнди

@SimonWhitehead: я могу запустить сайт от Кассини.
Сэнди

Ответы:


315

Одной из возможных причин этого может быть то, что пул приложений в IIS настроен для работы под какой-либо настраиваемой учетной записью, и эта учетная запись либо не существует, либо предоставлен неверный пароль, либо пароль был изменен. Посмотрите на расширенные свойства пула приложений в IIS, для которого он использует учетную запись.

Также журнал событий может содержать больше информации о том, почему пул приложений немедленно останавливается при первом запросе.

введите описание изображения здесь


38
В моем случае это была проблема. Я изменил свой пароль Windows, и мой локальный IIS для Windows 8.1 перестал работать. Мне пришлось обновить каждый проект в нескольких местах. В IIS 8 мне пришлось обновить учетные данные в пуле приложений, щелкнув правой кнопкой мыши пул и выбрав «Дополнительные параметры -> Модель процесса -> Идентичность». Затем мне пришлось обновить сам сайт, перейдя в «Сайты -> MySITE -> Расширенные настройки ->
Учетные данные

4
Даже если учетная запись существует и пароль правильный, возможно, он был отключен; это вызвало бы те же симптомы.
Вольфганг

2
Да, это решение. Пароль моей учетной записи меняется очень часто. И я забыл дать новый пароль в «Расширенные настройки»
mihkov

2
Проверка журнала событий - это путь, который всегда помогал мне в этих вопросах, когда я в последний раз проверял журнал событий и обнаружил, что загрузка rewrite.dll в iis не удалась, я перешел к программам и функциям панели управления, отремонтировал установку, и все вернулось нормально.
Амр Элгархи

3
У нас была недавняя смена пароля. Это было решение. Для других см. Скриншот здесь: i.imgur.com/rp8bnGy.png
AskYous

43

Хорошо, у меня есть другое решение для одного конкретного случая: если вы используете WINDOWS 10 и недавно обновили его (с пакетом Anniversary Update), вам необходимо выполнить следующие шаги:

  1. Проверьте Windows Event Viewer- нажмите Win + R и введите:, eventvwrзатем нажмите ENTER.
  2. С левой стороны Windows Event Viewer нажмите на Windows Logs-> Application.
  3. Теперь вам нужно найти ОШИБКИ для источника IIS-W3SVC-WPв среднем окне.
  4. Возможно, вы увидите сообщение вроде:

Модуль DLL >> path-to-DLL << не удалось загрузить. Данные являются ошибкой.

  1. Вы должны пойти в Control Panel ->Program and Features и в зависимости от того, какая DLL не может быть загружена, вам нужно отремонтировать другой модуль:
    • для rewrite.dll - найти модуль перезаписи URL IIS 2 и нажмите Change->Repair
    • для aspnetcore.dll- найти Microsoft .NET Core 1.0.0 - VS 2015 Tooling ... и нажмите Change->Repair .
  2. Перезагрузите компьютер.

Этот ответ помог мне решить аналогичную проблему. Ошибка «Служба недоступна» исправлена ​​путем удаления Core 2.2 (только исправление не помогло). голосование
Роберто

2
Принятый ответ не помог. Это сделал. Спасибо!
адвокат дьявола

1
отличный ответ, журнал показывает мне, что DLL модуля C: \ Windows \ System32 \ inetsrv \ compdyn.dll не удалось загрузить. Данные являются ошибкой. поэтому я устанавливаю динамическое сжатие содержимого
Mehdi Daustany

Для меня это было так: The Module DLL C:\Windows\System32\inetsrv\iis_ssi.dll failed to load. The data is the error.Итак, я установил Выбор серверных
включений в

14

В моей ситуации пароль для входа в систему изменился, а пул приложений все еще использует старый. Так что просто нажмите «Расширенные настройки» вашего пула приложений и сбросьте «Идентичность».


Я бы согласился, что это случается довольно часто
Сэнди

11

Я столкнулся с той же проблемой и отладил ее с помощью журналов событий. Сначала говорится, что: «Описание для идентификатора события 5059 из источника Microsoft-Windows-WAS не найдено».

Затем я включил WAS с помощью функции включения / выключения Windows. . Затем я увидел это в eventvwr "Microsoft-Windows-DistributedCOM не может быть найден".

Наконец, я отказался и удалил пул приложений (который раньше останавливался при доступе к веб-сайту) и создал его снова, как есть. Это решило проблему.


И если у вас есть несколько сайтов, ссылающихся на один и тот же пул приложений, вы можете использовать appcmd для их пакетного обновления : appcmd list site /xml | appcmd set site /[path='/'].applicationPool:YOURNEWPOOL /in
drzaus 13.10.15

У меня тоже сработало. При обновлении с 2008 по 2012 годы пулы приложений были не совсем довольны.
Энтони Хорн

6

Для тех, кто приходит сюда с Windows 10 и после их обновления до годовщины, пожалуйста, проверьте эту ссылку, она мне помогла:

https://orcharddojo.net/blog/troubleshooting-iis-apppool-crashes-status-503-after-windows-10-anniversary-update

Если ссылка не работает: если ваш журнал событий показывает, что aspnetcore.dll, rewrite.dll (чаще всего, но могут быть и другие) не удалось загрузить, вы должны исправить недостающие элементы.

Вот две конкретные проблемы, с которыми мы столкнулись до сих пор, и способы их устранения, но вы можете столкнуться с совершенно другими:

"C:\WINDOWS\system32\inetsrv\rewrite.dll" (reference)
    Go to "Programs and Features" (Win+X, F) and repair "IIS URL Rewrite Module 2".
"C:\WINDOWS\system32\inetsrv\aspnetcore.dll" (reference)
    Go to "Programs and Features" (Win+X, F) and repair "Microsoft .NET Core 1.0.0 - VS 2015 Tooling ...".

6

В большинстве случаев это происходило из-за настроек AppPool.

Проверьте следующее, чтобы решить эту проблему

  1. Проверьте, работает ли служба Apppool.
  2. Проверьте личность AppPool.
  3. Введите новый пароль, если он был изменен для этой личности.

Следующие изображения показывают эти настройки в IIS

введите описание изображения здесь


5

Если у вас есть McAfee HIPS и вы видите следующую ошибку в журнале приложения просмотра событий:

Модуль DLL C: \ Windows \ System32 \ inetsrv \ HipIISEngineStub.dll не удалось загрузить.
Данные являются ошибкой.

Тогда следующие проблемы решили в моем случае: https://kc.mcafee.com/corporate/index?page=content&id=KB72677&actp=LIST

Цитата со страницы:

  1. Нажмите Пуск, Выполнить, введите проводник и нажмите ОК.
  2. Перейдите к:% windir% \ system32 \ inetsrv \ config
  3. Откройте файл applicationHost.config от имени администратора для редактирования в Блокноте.
  4. Отредактируйте раздел <globalModules> и удалите следующую строку:
    <add name = "MfeEngine" image = "% windir% \ System32 \ inetsrv \ HipIISEngineStub.dll" />

  5. Отредактируйте раздел <modules> и удалите следующую строку:
    <add name = "MfeEngine" />

  6. После того, как вы закончили редактирование файла applicationHost.config, сохраните его, затем перезапустите сервер IIS, используя iisreset или перезагрузив систему.

5

В моем случае я проверил журналы событий и обнаружил ошибку: «Не удается прочитать файл конфигурации» при попытке чтения данных конфигурации из файла «\\? \», Номер строки «0». Поле данных содержит код ошибки.

Код ошибки был 2307.

Я удалил все файлы в C: \ inetpub \ temp \ appPools и перезапустил iis. Это исправило проблему.


4

У меня была похожая проблема. Я решил эту проблему, добавив своего пользователя в политику «Вход в систему как пакетное задание» в разделе «Локальная политика безопасности»> «Локальные политики»> «Назначение прав пользователя».


4

Когда я впервые добавляю сервис и создаю для него пул приложений. Я сделал «iisreset» из командной строки, и это сработало.


3

Если вы можете запустить сайт в отладчике Visual Studio, то сможете увидеть, где в вашем коде происходит сбой пула приложений. В моем случае это была функция, вызываемая рекурсивно неограниченное количество раз, и это вызывало переполнение стека. Примечание. Журнал событий Windows и журналы IIS не помогли диагностировать проблему.


3

У меня была такая же проблема с iis 8.5. После поиска в EventViewer в разделе «Журналы Windows -> приложения» я понял, что у меня возникает ошибка разрешения для файла machine.config .net framework, расположенного по адресу «C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319». \ Config \ machine.config». Предоставление разрешения для IIS_IUSRS решило мою проблему (щелкните правой кнопкой мыши файл -> свойства -> безопасность -> изменить -> добавить -> IIS_IUSRS)


3

Я столкнулся с этой ошибкой, и в моем случае причина была в том, что некоторое время назад я изменил пароль пользователя, и ошибка 503 не появлялась, пока я не перезапустил пул приложений.

Поэтому я исправил это, установив новый пароль в Пулы приложений / Расширенные настройки / Идентификация / [...] / Установить ... / Пароль / Подтвердить пароль


2

У меня была похожая проблема, все мои пулы приложений останавливались всякий раз, когда к ним поступал веб-запрос. Хотя я получаю следующую ошибку в окне просмотра событий:

Рабочий процесс для пула приложений 'appPoolName' обнаружил ошибку 'Файл конфигурации не является правильно сформированным XML', пытаясь прочитать данные конфигурации из файла '\? \ C: \ inetpub \ temp \ apppools \ appPoolName \ appPoolName.config', строка номер «3». Поле данных содержит код ошибки.

Который сказал мне, что были ошибки в application.config по адресу:

C: \ Windows \ System32 \ Inetsrv \ Config \ applicationHost.config

В моем сценарии я отредактировал файл web.config при развертывании с явным неприязнением к IIS, applicationHost.config очистил web.config и вставил этот плохой элемент, но не смог разрешить, пока я не удалил его вручную


«элемент IIS явно не любит», что это за конкретный элемент, который вы упомянули?
Ахил

Я сделал этот пост более 4 лет назад. Я не уверен, какой элемент был в web.config, но это не главное. Проблема пула приложений, которую описывает OP, происходила со мной, и я получал эти бесполезные сообщения об ошибках. Причиной вышесказанного было то, что я поместил неправильную запись в web.config моего сайта. (возможно, с орфографической или синтаксической ошибкой или разделом, который IIS не признал действительным)
ShaneC

2

В дополнение к шагам, описанным в этой ссылке из ответа Орхана , вам может потребоваться дополнительно удалить собственный модуль, выбрав IIS Manager> Корень сервера> Модули> Настроить собственные модули. Выберите MfeEngine, а затем выберите Удалить.


2

Смена «Управляемого режима конвейера» с «Классического» на «Интегрированный» работала для меня. Его можно изменить в пуле приложений -> Основные настройки


Это исправило мою проблему, которая появилась после применения следующих окон KB на нашем Windows Server 2008 R2 с IIS 7.5. ### 2019-07 Накопительный пакет безопасности и качества для .NET Framework 3.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8 для Windows 7 и Server 2008 R2 для x64 (KB4507420) Дополнительная информация: support.microsoft.com/kb/4507420 ###
phanf

1

Просто чтобы добавить к этим Anniversary Updateвопросам (благодаря Microsoft) , если файл отсутствует является cgi.dll, то ваш Event Viewerесть

The Module DLL C:\WINDOWS\System32\inetsrv\cgi.dll failed to load.  The data is the error.

Затем исправить это:

  1. Перейти к IIS Manager
  2. Выберите самый верхний ряд в Connections панели (обычно имя вашего ПК)
  3. В самом низу правой панели, под Management , вы должны иметьWeb Platform Installer
  4. После загрузки выберите Products
  5. В поиске введите, cgiзатем нажмите<Enter>
  6. Выберите, IIS: CGIзатем нажмите Addсправа и, наконец, Installвнизу
  7. После установки он должен заставить вас перезагрузить компьютер, и вы должны быть исправлены.

1
Моим был «Перезаписать URL», который я удалил, а затем переустановил. Потому что я получил эту ошибку: «Ошибка загрузки DLL модуля C: \ WINDOWS \ system32 \ inetsrv \ rewrite.dll. Данные - ошибка».
Gwasshoppa

0

Поможет ли вам этот ответ?
Если вы получаете следующее сообщение в EventViewer

Не удалось загрузить модуль DLL aspnetcorev2.dll. Данные являются ошибкой.

Тогда да, это решит вашу проблему


Чтобы проверить ваше событие Viewer

  1. нажмите Win + R и введите:, eventvwrзатем нажмите ENTER.
  2. С левой стороныWindows Event Viewer нажмите на Windows Logs-> Application.
  3. Теперь вам нужно найти некоторые ОШИБКИ для источника IIS-W3SVC-WPв среднем окне.

если вы получили сообщение об ошибке предыдущего решения, то решение:

Установите распространяемый Microsoft Visual C ++ 2015 86x и 64X (оба)

Источник

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.