Процесс dotnet внутри IIS дает сбой. Как я могу определить причину и устранить ее?

Мы тестируем базовое приложение ASP.net, которое дает сбой при запуске процесса dotnet.exe внутри системы «обратного прокси», которую IIS автоматически использует, если вы установили на свой компьютер опцию основного хостинга IIS .net.

После сбоя процессов dotnet (в нашем случае пяти) все запросы возвращают 502 ошибки, и IIS не восстанавливается путем перезапуска процессов dotnet.

В журнале IIS (в средстве просмотра событий) нет ничего, что указывало бы на причину сбоя пула, и иногда пользовательский интерфейс администратора IIS показывает, что пул «остановлен», а иногда что он «запущен», но в диспетчере задач все dotnet .exe процессы ушли.

Мы собираемся делить пополам (перестраивать из предыдущих коммитов нашего кода), пока не изолируем его, но этот вопрос в основном касается обратного прокси ISS и DotNet:

  • Есть ли что-нибудь еще, кроме средства просмотра событий (eventvwr.msc), которое могло бы содержать соответствующие журналы на обратном прокси-сервере IIS и хост-процессе dotnet.exe? В средстве просмотра событий нет текущих элементов, которые кажутся актуальными. Есть сообщения за другие дни, кроме тех дней, когда у нас были сбои, которые показывают, что WAS запускает и перезапускает пулы IIS, но нет сообщений, когда процессы dotnet только что ушли.

iis сообщения в средстве просмотра событий

  • Есть ли какая-либо известная ошибка в среде выполнения dotnet, вызывающая ее сбой, а IIS не восстанавливает и не перезапускает процесс?

  • Единственное ведение журнала, которое я вижу из IIS, - это запросы GET / POST, никакой полезной информации в C:\inetpub\logs\LogFiles\...

Обновление: с сегодняшнего дня я вижу несколько соответствующих записей в программе просмотра событий: Failed to start process with commandline '"dotnet" .\MyCompany.Authorization.Api.dll', ErrorCode = '0x80004005'. from Source: IIS AspNetCore Module


person Warren P    schedule 27.07.2016    source источник
comment
Попробуйте поискать в Windows Logs\Application событиях. Может быть что-то с источником IIS AspNetCore Module.   -  person pepo    schedule 27.07.2016
comment
Вы пытались отредактировать файл web.config и установить для <aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false"/> stdoutLogEnabled значение true?   -  person Tseng    schedule 27.07.2016
comment
Теперь я считаю, что это ошибка новой модели хостинга IIS для процессов DOTNET.   -  person Warren P    schedule 03.08.2016


Ответы (1)


Похоже, что в этом случае происходит сбой самого IIS, а не процесса dotnet внутри моего пула приложений. Мое свидетельство состоит в том, что файлы журналов в C: \ inetpub \ logs \ LogFiles \ W3SVC1 показывают это, что похоже на то, что сам IIS дает сбой и перезапускается. Обратите внимание на "#" в начале того, что выглядит как начальная запись в журнал запуска / запуска:

2016-08-03 13:30:09 W3SVC1 192.168.215.35 GET /api/v3/fhir/patient/311 - 80 - 192.168.215.164 HTTP/1.1 python-requests/2.10.0 - dev-html5.mycompany.biz 404 0 2 1405 1099 0
2016-08-03 13:31:19 W3SVC1 192.168.215.35 OPTIONS /api/v3/fhir/code _dc=1470231079494 80 - 192.168.225.119 HTTP/1.1 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/51.0.2704.103+Safari/537.36 http://localhost:8086/ dev-html5.mycompany.biz 200 0 0 206 544 109
2016-08-03 13:31:21 W3SVC1 192.168.215.35 OPTIONS /api/v3/fhir/imagingstudy/297 _dc=1470231081268 80 - 192.168.225.119 HTTP/1.1 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/51.0.2704.103+Safari/537.36 http://localhost:8086/ dev-html5.mycompany.biz 200 0 0 206 556 312
2016-08-03 13:31:33 W3SVC1 192.168.215.35 OPTIONS /api/v3/fhir/code _dc=1470231093098 80 - 192.168.225.119 HTTP/1.1 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/51.0.2704.103+Safari/537.36 http://localhost:8086/ dev-html5.mycompany.biz 200 0 0 206 544 53
2016-08-03 13:31:34 W3SVC1 192.168.215.35 OPTIONS /api/v3/fhir/imagingstudy/297 _dc=1470231094714 80 - 192.168.225.119 HTTP/1.1 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/51.0.2704.103+Safari/537.36 http://localhost:8086/ dev-html5.mycompany.biz 200 0 0 206 556 59
#Software: Microsoft Internet Information Services 8.5
#Version: 1.0
#Date: 2016-08-03 13:33:03
#Fields: date time s-sitename s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs-version cs(User-Agent) cs(Referer) cs-host sc-status sc-substatus sc-win32-status sc-bytes cs-bytes time-taken
2016-08-03 13:33:03 W3SVC1 192.168.215.35 GET /api/v3/fhir/organization/1 - 80 - 192.168.215.35 HTTP/1.1 Mozilla/5.0+(Windows+NT+6.3;+WOW64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/51.0.2704.103+Safari/537.36 - dev-html5.mycompany.biz 502 5 0 1627 1255 519
2016-08-03 13:33:10 W3SVC1 192.168.215.35 GET /api/v3/authorize/login username=admin&password=mycompanyx 80 - 192.168.215.164 HTTP/1.1 python-requests/2.10.0 - dev-html5.mycompany.biz 502 5 0 1627 210 520
2016-08-03 13:33:23 W3SVC1 192.168.215.35 GET /api/v3/fhir/organization/1 - 80 - 192.168.215.35 HTTP/1.1 Mozilla/5.0+(Windows+NT+6.3;+WOW64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/51.0.2704.103+Safari/537.36 - dev-html5.mycompany.biz 502 5 0 1627 1255 523
#Software: Microsoft Internet Information Services 8.5
#Version: 1.0
#Date: 2016-08-03 13:34:06
#Fields: date time s-sitename s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs-version cs(User-Agent) cs(Referer) cs-host sc-status sc-substatus sc-win32-status sc-bytes cs-bytes time-taken
2016-08-03 13:34:06 W3SVC1 192.168.215.35 OPTIONS /api/v3/fhir/linkage/patient/315 _dc=1470231246063 80 - 192.168.225.30 HTTP/1.1 Mozilla/5.0+(Windows+NT+10.0;+WOW64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/51.0.2704.103+Safari/537.36 http://localhost:8086/ dev-html5.mycompany.biz 502 5 0 1627 511 548
#Software: Microsoft Internet Information Services 8.5
#Version: 1.0
#Date: 2016-08-03 13:34:18
#Fields: date time s-sitename s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs-version cs(User-Agent) cs(Referer) cs-host sc-status sc-substatus sc-win32-status sc-bytes cs-bytes time-taken
2016-08-03 13:34:18 W3SVC1 192.168.215.35 GET /api/v3/fhir/organization/1 - 80 - 192.168.215.35 HTTP/1.1 Mozilla/5.0+(Windows+NT+6.3;+WOW64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/51.0.2704.103+Safari/537.36 - dev-html5.mycompany.biz 502 5 0 1627 1255 531
2016-08-03 13:34:41 W3SVC1 192.168.215.35 GET /api/v3/authorize/login username=admin&password=mycompanyx 80 - 192.168.215.164 HTTP/1.1 python-requests/2.10.0 - dev-html5.mycompany.biz 502 5 0 1627 210 531
2016-08-03 13:34:46 W3SVC1 192.168.215.35 OPTIONS /api/v3/fhir/code _dc=1470231282672 80 - 192.168.225.119 HTTP/1.1 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/51.0.2704.103+Safari/537.36 http://localhost:8086/ dev-html5.mycompany.biz 502 5 0 1627 544 777
2016-08-03 13:34:46 W3SVC1 192.168.215.35 OPTIONS /api/v3/fhir/imagingstudy/297 _dc=1470231284575 80 - 192.168.225.119 HTTP/1.1 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/51.0.2704.103+Safari/537.36 http://localhost:8086/ dev-html5.mycompany.biz 502 5 0 1627 556 1037
2016-08-03 13:34:57 W3SVC1 192.168.215.35 GET /api/v3/fhir/organization/1 - 80 - 192.168.215.35 HTTP/1.1 Mozilla/5.0+(Windows+NT+6.3;+WOW64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/51.0.2704.103+Safari/537.36 - dev-html5.mycompany.biz 502 5 0 1627 1221 530
2016-08-03 13:35:00 W3SVC1 192.168.215.35 OPTIONS /api/v3/fhir/code _dc=1470231299728 80 - 192.168.225.119 HTTP/1.1 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/51.0.2704.103+Safari/537.36 http://localhost:8086/ dev-html5.mycompany.biz 502 5 0 1627 544 527

Я собираюсь попытаться создать воспроизводимую тестовую базу, но на данный момент это, похоже, связано с:

  1. IIS на Windows Server 2012 R2 с установленным обновлением хостинга dotnet IIS и всеми последними обновлениями Windows.

  2. IIS размещает несколько приложений в одном пуле приложений. Это (мое) решение разместить несколько приложений в одном пуле может быть «не рекомендовано» Microsoft из-за известных проблем (таких как эта), но я обновлю этот ответ, когда у меня будет более подробная информация.

Также кажется, что IIS Failed Request Tracing (FREB) может быть полезен, когда IIS падает. См. эту статью.

Обновление: я установил виртуальную машину Azure и смог воспроизвести и предоставить сведения в Microsoft. Результаты этого исследования опубликованы в выпуске 245 Github IISIntegration здесь. Обходное решение для конкретной проблемы, с которой я столкнулся, было предложено мне кем-то в Microsoft, идея обходного пути такова:

  • В развернутом приложении ядра IIS dotnet измените относительное имя файла запуска web.config на абсолютное имя файла, например, с <aspNetCore processPath="dotnet" arguments=".\yourapp.dll" ... /> на <aspNetCore processPath="dotnet" arguments="c:\full\path\to\yourapp.dll" ... />, и внесите изменения кода в Startup.cs и Program.cs, которые проверяют, когда среда является Release, и если да, всегда получить текущий рабочий каталог приложения в качестве корневого веб-каталога вместо предоставленного корневого веб-каталога среды.

  • Во время выполнения после каждого развертывания вручную повторно применяйте изменения web.config, потому что вы не можете изменять исходные (входные) файлы web.config в своем проекте, а только развернутый окончательный двоичный контент (после выполнения публикации dotnet).

person Warren P    schedule 03.08.2016
comment
Связанное обсуждение интеграции с github / iis: github.com/aspnet/IISIntegration/issues/245 - person Warren P; 03.08.2016
comment
Также: meta.stackoverflow.com/questions/331857/ - person Jerry Dodge; 07.08.2016
comment
Да, это была подделка. Спасибо, что сообщили об этом. - person Warren P; 29.08.2016