Ошибка 503. Сервис недоступен. Пул приложений останавливается при доступе к веб-сайту
На этом есть несколько сообщений, и я уже много пробовал. Но безрезультатно. Я сам разработчик Winforms в основном, начал работать над этим веб-материалом несколько дней назад, когда моя компания принимает веб-инициативы.
У меня есть проект ASP.Net, и я хочу разместить его на локальном IIS. В настройках Project properties -> Web
я выбрал Use Local IIS Server
и дал url как localhost/MyApp
. Я попытался получить доступ к нему в моем браузере firefox и получил ошибку как HTTP Error 503. The service is unavailable.
Раньше у меня было много других ошибок, и я один за другим исправлял их все. Но поразил этот. Это настройки, которые у меня есть в моем проекте
- Пул приложений установлен в ASP.Net v4.0 Classic
- Свойство App Pool
Enable 32 bit Application
истинно.
- Пул приложений запущен
- Свойство сборки проекта установлено в
Any CPU
для целевой структуры
Но я хотел бы упомянуть о странном поведении. Следующее - это то, с чем я сталкиваюсь
- Пул приложений запущен
- Я пытаюсь получить доступ к моему локальному сайту (указав url как
localhost/MyApp
)
- Я получаю сообщение об ошибке как
HTTP Error 503. The service is unavailable
- Пул приложений остановлен
Я видел следующую ссылку, и я уже пробовал это. Для вышеуказанного поведения я достиг здесь. Согласно этой ссылке, имя компьютера не должно содержать .
. У меня нет имени .
в имени моего компьютера, но в нем есть -
. Также мое доменное имя содержит .
. Более того, я не могу изменить эти настройки, так как мой офисный ноутбук и наши настройки TFS привязаны к нашим доменам и именам компьютеров.
Может кто-нибудь помочь мне понять, что происходит? Пожалуйста, направляйте меня. Спасибо.
Edit
У меня есть следующий код в 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");
}
Обновление
В соответствии с предложениями в комментарии, я могу запустить веб-сайт из Cassini.
Ответы
Ответ 1
Одной из возможных причин этого может быть то, что пул приложений в IIS настроен для работы под какой-либо настраиваемой учетной записью, и эта учетная запись либо не существует, либо предоставлен неверный пароль, либо пароль был изменен. Посмотрите на расширенные свойства пула приложений в IIS, для которого он использует учетную запись.
Кроме того, журнал событий может содержать больше информации о том, почему пул приложений немедленно останавливается при первом запросе.
![enter image description here]()
Ответ 2
Хорошо, у меня есть другое решение для одного конкретного случая: если вы используете WINDOWS 10, и недавно вы его обновили (с пакетом обновления Anniversary Update), вам необходимо выполнить следующие шаги:
- Проверьте
Windows Event Viewer
- нажмите Win + R и введите: eventvwr
, затем нажмите ENTER.
- В левой части
Windows Event Viewer
нажмите Windows Logs
→ Application
.
- Теперь вам нужно найти некоторые ОШИБКИ для источника
IIS-W3SVC-WP
в среднем окне.
- Вероятно, вы увидите сообщение типа:
Модуль DLL → путь к DLL < ошибка загрузки. Данные являются ошибкой.
- Вам нужно перейти к
Control Panel
→ Program and Features
и в зависимости от того, какая DLL не может быть загружена, вам необходимо восстановить другой модуль:
- для
rewrite.dll
- найдите IIS URL Rewrite Module 2 и нажмите Change
→ Repair
- для
aspnetcore.dll
- найдите Microsoft.NET Core 1.0.0 - VS 2015 Tooling... и нажмите Change
→ Repair
.
- Перезагрузите компьютер.
Ответ 3
В моей ситуации мой пароль для входа изменился, а пул приложений по-прежнему использует старый. Поэтому просто нажмите "Дополнительные настройки" вашего пула приложений и reset свою "Идентичность".
Ответ 4
Я столкнулся с той же проблемой и отладил ее, используя журналы событий. Сначала он сказал, что: "Описание для идентификатора события 5059 из источника Microsoft-Windows-WAS не может быть найдено".
Затем я включил WAS, используя включить/выключить функции Windows. Тогда я увидел это в eventvwr
"Microsoft-Windows-DistributedCOM не может быть найден".
Наконец, я отказался и удалил пул приложений (который использовался для остановки доступа к веб-сайту) и создал его снова, как есть. Это разрешило проблему.
Ответ 5
В большинстве случаев это происходило из-за настроек AppPool.
Проверьте следующее, чтобы решить эту проблему
- Проверьте, работает ли служба Apppool.
- Проверьте личность AppPool.
- Введите новый пароль, если он был изменен для этой личности.
Следующие изображения показывают эти настройки в IIS
![enter image description here]()
Ответ 6
Для тех, кто придет сюда с Windows 10 и после обновления их до Anniversary update, пожалуйста, проверьте эту ссылку, это помогло мне:
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 ...".
Ответ 7
Если у вас есть McAfee HIPS, и если в журнале приложений для просмотра событий появляется следующая ошибка:
Не удалось загрузить модуль DLL C:\Windows\System32\inetsrv\HipIISEngineStub.dll.
Данные являются ошибкой.
Затем в моем случае была решена проблема:
https://kc.mcafee.com/corporate/index?page=content&id=KB72677&actp=LIST
Цитата со страницы:
- Нажмите "Пуск", "Выполнить", введите "Исследователь" и нажмите "ОК".
- Перейдите к:% windir%\system32\inetsrv\config
- Откройте файл applicationHost.config как Администратор для редактирования в Блокноте.
-
Отредактируйте раздел <globalModules> и удалите следующую строку:
< добавить name= "MfeEngine" image = "% windir%\System32\inetsrv\HipIISEngineStub.dll" /" >
-
Отредактируйте раздел <modules> и удалите следующую строку:
< добавить name= "MfeEngine" /" >
- Закончив редактирование файла applicationHost.config, сохраните файл, затем перезапустите сервер IIS с помощью iisreset или перезапустите систему.
Ответ 8
Когда я впервые добавляю службу и создаю для нее пул приложений.
Я сделал "iisreset" из командной строки, и он сработал.
Ответ 9
В моем случае я проверил журналы событий и обнаружил, что ошибка была
Не удается прочитать файл конфигурации, пытающийся прочитать данные конфигурации из файла '\\? \', Номер строки '0'. Поле данных содержит код ошибки.
Код ошибки: 2307.
Я удалил все файлы в C:\inetpub\temp\appPools и перезапустил iis. Это исправило проблему.
Ответ 10
Если вы можете запустить веб-сайт в отладчике Visual Studio, тогда вы сможете увидеть, где в вашем коде происходит сбой пула приложений. В моем случае это была функция, называемая рекурсивно неограниченное количество раз, и это вызвало переполнение стека. Примечание. Журнал событий Windows и журналы IIS не помогли диагностировать проблему.
Ответ 11
У меня была аналогичная проблема. Я решил это, добавив моего пользователя в политику "Войти как пакетное задание" в разделе "Локальная политика безопасности" > "Локальные политики" > "Назначение прав пользователя".
Ответ 12
Я столкнулся с этой ошибкой, и в моем случае причина была в том, что некоторое время назад я изменил пароль пользователя, и ошибка 503 не появлялась, пока я не перезапустил пул приложений.
Поэтому я установил новый пароль, установив новый пароль в Пулы приложений/Расширенные настройки/Идентификация/[...]/Установить.../Пароль/Подтвердить пароль
Ответ 13
У меня была такая же проблема с iis 8.5. После поиска eventViewer в Windows Logs → приложениях я понял, что у меня ошибка разрешения для файла machine.config.net framework, расположенного в "C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\machine.config".
Предоставление ему разрешения для IIS_IUSRS решило мою проблему (щелкните правой кнопкой мыши файл → свойства → безопасность → изменить → добавить → IIS_IUSRS)
Ответ 14
У меня была аналогичная проблема, все мои пулы приложений останавливались всякий раз, когда к ним делался веб-запрос. Хотя в средстве просмотра событий я получал следующую ошибку:
Рабочий процесс для пула приложений "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 и вставил этот плохой элемент и не разрешил, пока я его не удалил вручную
Ответ 15
В дополнение к шагам, описанным в этой ссылке из ответа Orhan, вам может потребоваться дополнительно удалить собственный модуль, перейдя в диспетчер IIS > Server Root > Модули > Настроить собственные модули. Выберите MfeEngine и затем выберите "Удалить".
Ответ 16
Просто чтобы добавить к этим проблемам Anniversary Update
(спасибо Microsoft), если отсутствует файл cgi.dll
, т.е. ваш Event Viewer
имеет
The Module DLL C:\WINDOWS\System32\inetsrv\cgi.dll failed to load. The data is the error.
Затем исправить это:
- Перейти к
IIS Manager
- Выберите самый верхний ряд на панели "
Connections
(обычно это имя вашего ПК). - В самом низу правой панели в разделе "
Management
должен быть Web Platform Installer
- После загрузки выберите
Products
- В поиске типа в
cgi
нажмите <Enter>
- Выберите
IIS: CGI
затем нажмите " Add
справа и, наконец, Install
"Внизу". - После установки он должен заставить вас перезагрузить компьютер, и вы должны быть исправлены.
Ответ 17
Смена "Управляемого режима конвейера" с "Классического" на "Интегрированный" работала для меня. Его можно изменить в пуле приложений → Основные настройки