ASP.NET Core 3 - Web.config с Kestrel и IIS Express? - PullRequest
0 голосов
/ 03 июля 2019

У меня есть файл web.config, который выглядит примерно так:

<?xml version="1.0" encoding="utf-8"?>
<!--
  For more information on how to configure your ASP.NET application, please visit
  http://go.microsoft.com/fwlink/?LinkId=169433
  -->
<configuration>
  <system.webServer>
    <rewrite>
      <rules>
            ....
        </rule>
      </rules>
    </rewrite>

    <aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="false" hostingModel="InProcess">
      <environmentVariables>
        <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development"/>
        <environmentVariable name="COMPLUS_ForceENC" value="1"/>
      </environmentVariables>
    </aspNetCore>
  </system.webServer>
</configuration>

Это работает с IIS Express, но с Kestrel не удается с: ConfigurationErrorsException: Unrecognized configuration section system.webServer.

Следуя примеруhttps://weblog.west -wind.com / posts / 2019 / Mar / 16 / ASPNET-Core-Hosting-on-IIS-with-ASPNET-Core-22 , я могу это исправить, поместив <system.webServer> внутритег location, подобный следующему:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <location path="." inheritInChildApplications="false">
    <system.webServer>
      <handlers>
        <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" />
      </handlers>

      <!-- hostingModel is the new property here -->
      <aspNetCore processPath="dotnet" arguments=".\WebApplication1.dll"    
                  stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout"
                  hostingModel="InProcess" />

    </system.webServer>
  </location>
</configuration>

Но эта конфигурация завершается неудачно в IIS Express с похожей ошибкой.

Так в чем здесь решение?Я хочу использовать 1 web.config для обоих развертываний, и я не знаю, как это сделать.

Спасибо.

...