Невозможно запустить основное приложение. net как на локальном, так и на сервере с IIS - PullRequest
0 голосов
/ 10 января 2020

Я создал. net core api (версия 2.2.0), и я получаю следующую ошибку при попытке запустить на IIS.

Не удалось запустить процесс приложения. Процесс приложения запустился, но затем остановился. Процесс приложения запустился, но не смог прослушать настроенный порт

Я проверил свою веб-конфигурацию, и она Похоже, имеет правильный набор значений. Включено ведение журнала и файл журнала поставляется как пустой.

Журнал событий показывает следующую ошибку.

enter image description here

Я установил хостинг-пакет и проверил, все еще получаю ту же ошибку. Также попытался дать разрешение IIS_IUSRS на выходную папку. Это не имело никакого значения. Сказав, что код ошибки "0x80004005" предлагает ошибку разрешения. Все еще не мог понять это. Цени любую помощь! Веб-конфигурация

<?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=".\MyApi.exe" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" hostingModel="InProcess" />
    </system.webServer>
  </location>
</configuration>`enter code here`
<!--ProjectGuid: 4d7644bb-9348-46f9-8397-95f01e03d599-->

1 Ответ

1 голос
/ 13 января 2020

Убедитесь, что вы правильно опубликовали sh сайт в iis. Папка вашего сайта root имеет достаточные права для доступа к ней через iis. назначьте разрешения iis_iusrs и iusr для папки сайта. ваша идентификация пула приложений установлена ​​идентификация пула приложений или локальной системы. анонимная аутентификация включена. и вы установили функцию iis asp. net. убедитесь, что привязка вашего сайта правильная и пул приложений использует правильную версию. net и работает в интегрированном пуле приложений.

Причина сообщения об ошибке

Ошибка HTTP 502.5 - Плохой шлюз и ошибка HTTP 502.5 - Сообщения об ошибках сбоя процесса появляются в ASP. NET Core, когда IIS не может выполнить процесс do tnet.

  • . NET Core Runtime не установлен
  • Файл web.config не был преобразован

Чтобы решить эту проблему, вы можете воспользоваться одним из предложенных ниже способов:

  1. Установите. NET Core Runtime

Наиболее распространенная причина этого - отсутствие установленной. NET Core Runtime на сервере.

Вы можете загрузить последнюю версию. NET Среда выполнения ядра с . NET страницы загрузки Microsoft .

После установки Bundle остановите iis и запустите снова.

Publi sh автономное развертывание

Если вы не хотите устанавливать. NET Core Runtime. Альтернативой для. NET Базовых веб-приложений является их публикация sh в автономном режиме развертывания, который включает в себя необходимые NET исполняемые файлы вместе с вашим приложением.

enter image description here

Если вы используете go с этим параметром, вам также необходимо выбрать целевую среду выполнения: win-x86, win-x64, osx-x64 или linux -x64. Поскольку автономные развертывания не переносимы.

Преобразование файла web.config

Другая причина возникновения этой ошибки - развертывание нетрансформированного файла web.config.

Это может быть вашей проблемой, если У вас было ранее работающее веб-приложение, и вы просто развернули его новую версию.

В ASP. NET Базовые приложения, файл web.config содержит обработчик, который направляет запросы в AspNetCoreModule и aspNetCore элемент, который определяет и настраивает процесс ASP. NET Core для выполнения вашего веб-приложения.

Вот минимальный файл web.config для ASP. NET Core приложения:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <handlers>
      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
    </handlers>
    <aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="true" 
        stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false"/>
  </system.webServer>
</configuration>

Проблема в том, что нетрансформированный файл web.config содержит переменные% LAUNCHER_PATH% и% LAUNCHER_ARGS%, а не правильные пути. Когда IIS пытается запустить ASP. NET Core, он использует% LAUNCHER_PATH% и% LAUNCHER_ARGS%, а не правильный путь и аргументы. Чтобы исправить ошибку HTTP 502.5 в ASP. NET Core, необходимо преобразовать файл web.config и заменить нетрансформированный файл web.config на веб-сервере IIS.

шаги для преобразования web.config file:

Это преобразование происходит, когда вы решаете опубликовать sh ваше веб-приложение. Преобразованный файл web.config попадает в опубликованную выходную папку. Поэтому вам просто нужно опубликовать sh ваше веб-приложение и скопировать полученный файл web.config на сервер.

В преобразованном файле web.config элемент aspNetCore будет выглядеть примерно так:

<aspNetCore processPath="dotnet" arguments=".\MyApplication.dll" stdoutLogEnabled="true" 
stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false" />

% LAUNCHER_PATH% был заменен на do tnet, а% LAUNCHER_ARGS% был заменен путем к пути к основному веб-приложению dll. \ MyApplication.dll.

ссылки:

Publi sh и ASP. NET Базовое приложение для IIS

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