. NET API-интерфейс core 3, разработка на Ma c с кодом Visual Studio: как развернуть и настроить на IIS? - PullRequest
0 голосов
/ 07 апреля 2020

Я разработал веб-API с Net Core 3 для Ma c с кодом Visual Studio без проблем. Я публикую sh с помощью команды: dotnet publish -c release

Но я не могу развернуть на IIS: команда publi sh не генерирует файл "web.config", поэтому я использую эту конфигурацию, которую я нашел на web (может быть для Core 2.0?):

<?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=".\thenameofmydll.dll"
                  stdoutLogEnabled="false"
                  stdoutLogFile=".\logs\stdout"
                  hostingModel="inprocess" />
    </system.webServer>
  </location>
</configuration>

Мои "program.cs":

public class Program
    {
        public static void Main(string[] args)
        {
            CreateHostBuilder(args).Build().Run();

        }

         public static IHostBuilder CreateHostBuilder(string[] args) =>
           Host.CreateDefaultBuilder(args)
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder.UseStartup<Startup>();
                }); 
    }

Мои вопросы:

  • "program.cs" правильно работать с IIS?

  • правильно "web.config"?

Я нашел несколько примеров в Интернете, но все это является частичным или неполным ... очень жаль, если я спрашиваю о чем-то, о чем ранее просили, но я не могу найти полный пример для. Net Core 3

Спасибо!

Ответы [ 2 ]

0 голосов
/ 08 апреля 2020

В соответствии с базовым документом asp. net :

Если параметр -r пропущен, исполняемый файл создается для текущей платформы.

Я полагаю, вы можете попытаться установить версию времени выполнения в команде и повторить попытку. Это добавит файл web.config.

dotnet publish
 -c Release
 -f netcoreapp3.1 
-r win-x64 

Кроме того, любые пакеты NuGet, которые имеют зависящие от платформы c зависимости для целевой платформы, копируются в папку publi sh.

0 голосов
/ 07 апреля 2020

Документация Microsoft доступна для. Net Развертывание приложения CORE 3.x в IIS. Короче говоря, сначала вам нужно установить хостинг-пакет для. Net core 3.x на сервере IIS. Затем вы можете опубликовать sh приложение как автономное приложение или приложение, зависящее от фреймворка. Вы можете выбрать эту опцию при настройке параметров publi sh.

Ваш web.config должен выглядеть примерно так

<configuration>
   <location path="." inheritInChildApplications="false">
     <system.webServer>
       <handlers>
         <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" 
         resourceType="Unspecified" />
       </handlers>
       <aspNetCore processPath=".\<app name>.exe" 
       stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" 
       />
    </system.webServer>
  </location>
</configuration>
...