Проблема размещения ASP.NET Core 3.0 с IIS для неопубликованных версий - PullRequest
0 голосов
/ 09 ноября 2019

В основном я пытаюсь настроить свой проект asp net core 3.0 для размещения на IIS только для целей разработки. Я включил необходимые функции Windows ISS и установил пакет веб-хостинга. Для неопубликованного (папка bin) хостинга я понял, что мне нужно вручную добавить 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="dotnet" arguments=".\MyApp.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />
    </system.webServer>
  </location>
</configuration>

После сборки приложения этот подход не сработал. Я понял, что атрибут arguments указывает на несуществующий файл. Так как MyApp.dll находится внутри папки bin, а не в корне проекта, я изменил его на следующее:

arguments=".\bin\Debug\netcoreapp3.0\MyApp.dll"

И теперь сайт работает! Но есть большая проблема, сборка проекта не удалась, потому что IIS блокирует мои файлы в \ bin. Поэтому в настоящее время мой процесс включает в себя ручную остановку пула приложений, сборку проекта и повторный запуск пула.

Теперь я даже не уверен, является ли это правильным подходом к хостингу? У меня возникает ощущение, что IIS должен читать файл web.config, который находится в папке \ bin \ Debug, а не в корневом каталоге проекта. Но без уровня проекта web.config мой сайт вообще не запустится.

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