Ошибка HTTP 502.5 при запуске приложения ASP.NET Core 2.0 из IIS
Я получаю ошибку HTTP 502.5 при попытке запустить мое веб-приложение ASP.NET core 2.0 из IIS.
Я установил пакет размещения.NET Core Windows Server и проверил все свои настройки IIS в соответствии с этим документом https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/iis/index?tabs=aspnetcore2x
Файл web.config выглядит следующим образом.
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="dotnet" arguments=".\OscarWeb.dll" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" />
</system.webServer>
</configuration>
Журнал событий Windows выдает следующие ошибки.
Это IIS v6.2, работающий на Windows Server 2012 R2. Веб-приложение было построено с использованием ASP.NET Core 2.0.
Когда я запускаю dotnet из командной строки следующим образом, ошибок нет:
dotnet oscarweb.dll
3 ответа
Первое, что вы должны сделать в этом сценарии, это создать logs
папку, если она отсутствует, и проверьте сгенерированные журналы stdout.
Это может быть несколько разных вещей, но из личного опыта самой распространенной проблемой, с которой я столкнулся, было отсутствие у IIS достаточных разрешений для его запуска. В IIS вы можете настроить идентичность, используемую в расширенных настройках. Если он использует ApplicationPoolIdentity, измените его на LocalSystem и посмотрите, работает ли он. Журналы в файле stdtout, однако, дадут вам ответ.
Решением этой проблемы (по крайней мере, в моем случае) была перезагрузка веб-сервера. После установки.NET Core Windows Server Hosting Bundle вам необходимо перезагрузить сервер, чтобы они были зарегистрированы правильно.
Спасибо Крису Пратту (первый комментарий под моим вопросом) за предложение ответа:)
Не уверен, что ваш webconfig завершен. Я считаю, что для тега aspnetcore должна быть установлена переменная окружения ASPNETCORE_ENVIRONMENT.
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="dotnet" arguments=".\OscarWeb.dll" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" >
<environmentVariables>
<environmentVariable name="ASPNETCORE_ENVIRONMENT" value="YourRuntimeEnv" />
</environmentVariables>
</aspNetCore>
</system.webServer>
</configuration>