Ошибка 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>
Другие вопросы по тегам