Ошибка 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 LogsApplication.
  • Теперь вам нужно найти некоторые ОШИБКИ для источника IIS-W3SVC-WP в среднем окне.
  • Вероятно, вы увидите сообщение типа:

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

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

Ответ 3

В моей ситуации мой пароль для входа изменился, а пул приложений по-прежнему использует старый. Поэтому просто нажмите "Дополнительные настройки" вашего пула приложений и reset свою "Идентичность".

Ответ 4

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

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

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

Ответ 5

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

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

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

Следующие изображения показывают эти настройки в 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.

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

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

Ответ 17

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