При размещении основного приложения mvc asp.net в центре обработки данных Windows Server 2016, работающем под управлением iis 10, приложение не загружается с сообщением HTTP Error 500.30 - Сбой при запуске ANCM
Я создал приложениес версией 2017.9 с использованием .net core 2.2, хотя я установил .net core 2.2.3 на сервере.
на сервере:
C: \ Users \ user1> dotnet -info
.NET Core SDK (отражает любой global.json): Версия: 2.2.105 Фиксация: 7cecb35b92
Среда выполнения: Имя ОС: Версия ОС Windows: 10.0.14393 ОСПлатформа: Windows RID: win10-x64 Базовый путь: C: \ Program Files \ dotnet \ sdk \ 2.2.105 \
Хост (полезно для поддержки): Версия: 2.2.3 Фиксация: 6b8ad509b6
.NET Core SDK установлены: 2.1.4 [C: \ Program Files \ dotnet \ sdk] 2.2.105 [C: \ Program Files \ dotnet \ sdk]
.NET Runtime установлен: Microsoft.AspNetCore.All 2.2.3 [C: \ Program Files \ dotnet \ shared \ Microsoft.AspNetCore.All] Microsoft.AspNetCore.App 2.2.3 [C: \ Program Files \ dotnet \ shared \ Microsoft.AspNetCore.App] Microsoft.NETCore.App 2.0.5 [C: \ Program Files \ dotnet \ shared \ Microsoft.NETCore.App] Microsoft.NETCore.App 2.0.7 [C: \ Program Files \ dotnet \ shared \ Microsoft.NETCore.App] Microsoft.NETCore.App 2.2.3 [C: \ Program Files \ dotnet \ shared \ Microsoft.NETCore.App]
Чтобы установить дополнительные среды выполнения .NET Core или SDK: https://aka.ms/dotnet-download
Журнал событий приложений Windows показывает:
Приложение '/ LM / W3SVC / 3 / ROOT' с физическим корнем 'C: \ inetpub \ wwwroot \ healthmonitormvc \ 'не удалось загрузить clr и управляемое приложение.Неожиданное исключение: HRESULT 0x800700b7, возвращенный в c: \ b \ w \ da744fbcc13abce \ src \ servers \ iis \ aspnetcoremodulev2 \ inprocessrequesthandler \ inprocessapplication.cpp: 198
, есть несколько потоков об этом на GitHошибка и hresult, но без разрешения.
тот же код работает на локальном iis.myapp.exe также загружается (как и dotnet myapp.dll).так что, похоже, это проблема конфигурации iis (или дефект ядра .net, как указано на GitHub, который подразумевает, что я могу искать обходной путь).Файл stdout создан, но не имеет содержимого.
Этот проект является частью решения с неосновными проектами.тем не менее, я опубликовал проект с использованием веб-издателя, и он работает, как и ожидалось.
один поток stackoverflow рекомендовал изменить на OutOfProcess в качестве модели хостинга, но я НЕ ХОЧУ ИСПОЛЬЗОВАТЬ ИЗ ПРОЦЕССА.Он также не может загрузить с тем же результатом.это может быть случай, когда .net 2.2.3 сломан главным образом.но так как я могу запустить его локально, существует конфигурация, которая работает.
это web.config для приложения
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<location path="." inheritInChildApplications="false">
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath=".\my.name.space.HealthMonitor.Mvc.exe" arguments="exec ".\my.anme.space.HealthMonitor.Mvc.dll"" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" hostingModel="InProcess">
<environmentVariables>
<environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
</environmentVariables>
</aspNetCore>
</system.webServer>
</location>
<system.web>
<compilation targetFramework="netcoreapp2.2" />
</system.web>
</configuration>
Я ожидаю, что страница загрузится так же, как в iisexpress.или локальный, в котором отображается стандартная страница по умолчанию.