Не удается запустить ядро ​​ASP.NET под IIS: ошибка HTTP 500.0 - сбой загрузки обработчика ANCM - PullRequest
1 голос
/ 04 мая 2019

Я только что обновил свое веб-приложение с ASP.NET (Framework) MVC до ASP.NET Core 2.2. Приложение работает нормально под IIS Express, однако, как только я пытаюсь запустить его под IIS, выдается общая ошибка:

Ошибка HTTP 500.0 - сбой загрузки обработчика обработчиков ANCM Распространенные причины этой проблемы: указанная версия Microsoft.NetCore.App или Microsoft.AspNetCore.App не был найден. Запрос в процессе обработчик, Microsoft.AspNetCore.Server.IIS, не был указан в приложение. ANCM не смог найти дотнет.

Я искал в Интернете и вижу, что многие разработчики сталкиваются с одной и той же проблемой. Похоже, что Microsoft действительно упустила эту проблему и сделала настолько болезненной, насколько это возможно, разработку приложений ASP.NET Core под IIS. Несмотря на это, я хотел бы пробить эту кирпичную стену, против которой я бился головой последние 24 часа, поэтому могу воспользоваться некоторой помощью.

То, что я пробовал до сих пор:

  • Установлена ​​последняя версия .NET Core Runtime and Hosting Bundle, версия 2.2.4.

  • Установлена ​​последняя версия .NET Core SDK, версия 2.2.203.

  • Гарантировал, что «dotnet» запускается из командной строки и что версия x64 предшествует версии x86 в моих переменных среды.

C: \ WINDOWS \ system32> где dotnet C: \ Program Files \ dotnet \ dotnet.exe C: \ Program Files (x86) \ dotnet \ dotnet.exe

  • Попытался изменить мой автоматически сгенерированный Web.config с aspNetCore processPath = "% LAUNCHER_PATH%" arguments = "% LAUNCHER_ARGS%" на aspNetCore processPath = "dotnet" arguments = "./ Housters.Web.dll" изменения не сохраняются, каждый раз, когда я создаю свое веб-приложение, Web.config возвращается к исходным значениям% LAUNCHER_PATH%.

  • Попытка изменить «AspNetCoreModuleV2» на «AspNetCoreModule» в Web.config.

  • Добавлен IsTransformWebConfigDisabled = true в мой файл Web.csproj, чтобы предотвратить перезапись моего пользовательского файла Web.config. Это не сработало, Web.config все еще перезаписывается.

  • Попытка переключения AspNetCoreHostingModel = InProcess на RuntimeFrameworkName = Microsoft.AspNetCore.App в моем файле Web.csproj.

  • Очистка раствора, а также удаление папок bin, obj и даже .vs вручную.

Ни один из этих методов не помог, я все еще получаю ту же ошибку сбоя загрузки обработчика внутрипроцессного ANCM. Просмотр событий показывает более полезную ошибку:

Приложение 'C: \ Housters \ Web \' не удалось запустить. Исполняемый файл был не найден в 'C: \ Housters \ Web \% LAUNCHER_PATH% .exe'

Однако я ничего не могу с этим поделать, потому что мои изменения в Web.config не сохраняются. Но на самом деле настройки по умолчанию должны работать из коробки, нам не нужно прыгать через обручи, чтобы заставить IIS работать. Почему он ищет .exe, когда проект ASP.NET Core по умолчанию генерирует только .dll? И почему он не заменяет% LAUNCHER_PATH% на правильный путь, например "Бен / Debug"?

РЕДАКТИРОВАТЬ: я должен также упомянуть, что иногда мне удавалось сохранить мой пользовательский Web.config, и когда я делаю это каждый раз, когда я пытаюсь запустить веб-приложение, я получаю приглашение отладчика JIT:

enter image description here

Выбор отладки или просмотр журнала событий просто выдает мне недружелюбное сообщение об ошибке:

Неверное имя приложения: w3wp.exe, версия: 10.0.17134.1, время штамп: 0xed729d4e Неисправное имя модуля: KERNELBASE.dll, версия: 10.0.17134.556, отметка времени: 0xb9f4a0f1 Код исключения: 0xc0020001 Смещение ошибки: 0x000000000003a388 Идентификатор процесса ошибки: 0x2650 Ошибка время запуска приложения: 0x01d502b1f21b112e Неверный путь к приложению: c: \ windows \ system32 \ inetsrv \ w3wp.exe Неверный путь к модулю: C: \ WINDOWS \ System32 \ KERNELBASE.dll Идентификатор отчета:5b5c14cb-8ffa-47b4-8cc1-42f951bc1256 Полное имя ошибочного пакета: Неправильный пакетный идентификатор приложения:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...