Помилка HTTP 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 є правдою
  3. Пул додатків запускається
  4. Властивість побудови проекту встановлена Any CPUдля Target Framework

Але я хотів би згадати дивну поведінку. Слідом за цим я стикаюся

  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 . Я можу побачити деякі dlls та exe у завантажених файлах. Не могли б ви допомогти мені, як ним користуватися? Тим часом я спробую прочитати це питання з Інтернет-джерел.
Сенді

@SimonWhitehead: Я можу запустити веб-сайт від Кассіні.
Сенді

Відповіді:


315

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

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

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


38
У моєму випадку це було питання. Я змінив пароль для Windows, і мій локальний IIS для Windows 8.1 перестав працювати. Мені довелося оновлювати кожен проект у кількох місцях. У IIS 8 мені довелося оновити облікові дані в пулі додатків, клацнувши правою кнопкою миші на пулі та натиснувши "Розширені налаштування -> Модель процесу -> Ідентичність". Потім мені довелося оновити Сайт, перейшовши на "Сайти -> MySITE -> Розширені налаштування -> Фізичні дані фізичного шляху"
teynon

4
Навіть якщо обліковий запис існує і пароль правильний, він може бути відключений; це спричинило б ті ж симптоми.
Вольфганг

2
Так, це рішення. Пароль мого облікового запису змінюється дуже часто. І я забув дати новий пароль у "Розширених налаштуваннях"
mihkov

2
перевірка Журналу подій - це шлях, завжди допомагав мені в цих питаннях, востаннє я перевіряв журнал подій, і я виявив, що не вдалося завантажити rewrite.dll в iis, я перейшов до програм і функцій на панелі управління, відремонтували установку, і все пішло нормально.
Amr Elgarhy

3
Нещодавно ми змінили пароль. Це було рішення. Для інших дивіться скріншот тут: i.imgur.com/rp8bnGy.png
AskYous

43

Гаразд, у мене є ще одне рішення для одного конкретного випадку: якщо ви використовуєте WINDOWS 10, а ви нещодавно оновили його (з пакетом ювілейного оновлення), вам потрібно виконати наступні кроки:

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

Не вдалося завантажити модуль DLL >> шлях до DLL <<. Дані - це помилка.

  1. Вам потрібно перейти до Control Panel-> Program and Featuresі залежно від того, який dll неможливо завантажити, вам потрібно відремонтувати інший модуль:
    • для rewrite.dll- знайдіть модуль перезапису URL-адреси IIS та натисніть 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 не вдалося завантажити. Дані - це помилка. тому я встановлюю динамічне стиснення вмісту
Мехді Даустані

Для мене це було: The Module DLL C:\Windows\System32\inetsrv\iis_ssi.dll failed to load. The data is the error.Отже, я встановив Select Server Side Includes за цією пропозицією
David Refoua

14

Бо моя ситуація полягає в тому, що мій пароль для входу змінився, тоді як пул додатків все ще використовує старий. Тому просто натисніть "Розширені налаштування" пулу додатків та скиньте "Ідентичність".


Я погодився б, що це трапляється досить часто
Сенді

11

Я зіткнувся з тією ж проблемою, і налагодив її за допомогою журналів подій. По-перше, він сказав, що: "Опис для ідентифікатора події 5059 з джерела Microsoft-Windows-WAS неможливо знайти".

Потім я включив WAS, використовуючи функції включення / вимкнення функцій windows windows . Потім я побачив це у eventvwr "Microsoft-Windows-DistributedCOM не можна знайти".

Нарешті я відмовився і видалив пул додатків (який раніше зупинявся на доступі до веб-сайту) і створив його знову, як є. Це вирішило проблему.


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

Працював і для мене. Оновлення з 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. Клацніть Пуск, Виконати, введіть Explorer і натисніть кнопку ОК.
  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 Logs -> я зрозумів, що у мене є помилка дозволу на файл machine.config рамки .net, розташований за адресою "C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Налаштувати \ 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, але справа не в цьому. Проблема пулу додатків, яку описує ОП, сталася зі мною, і я повертав ці непосидні повідомлення про помилки. Причиною сказаного було те, що я ввів неправильний запис у веб-сайт web.config. (можливо, з орфографічною помилкою або синтаксичною помилкою або розділом, який IIS не визнав дійсним)
ShaneC


2

Для мене працювала зміна режиму "Керований трубопровід" з "Класичний" на "Інтегральний". Його можна змінити в пулах додатків -> Основні налаштування


Це вирішило мою проблему, яка з’явилася після застосування наступного KB KB до нашого сервера Windows 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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.