Преобразование Web.config удаляет узел Security и HttpProtocol.

Когда я публикую свое приложение Dotnet Core (2.x) в своей конфигурации выпуска, файл Web.config не преобразуется должным образом.

Конечно, в нем есть элементы Handlers и aspNet Core, но все узлы httpProtocol и Security полностью исчезли! Я что-то упустил здесь?

База/разработка 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="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" requestTimeout="00:10:00" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />
      <security>
        <requestFiltering>
          <requestLimits maxAllowedContentLength="524288000" />
        </requestFiltering>
      </security>
      <httpProtocol>
        <customHeaders>
          <add name="Access-Control-Allow-Origin" value="*" />
        </customHeaders>
      </httpProtocol>
    </system.webServer>
  </location>
</configuration>

А после публикации в dotnet --configuration Server -o C:\MyWebs\publish

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

Ваше здоровье.


person Piet Sikkema    schedule 21.06.2020    source источник
comment
Не могли бы вы предоставить базовую конфигурацию и ее преобразование?   -  person Roman Kalinchuk    schedule 21.06.2020
comment
@RomanKalinchuk Я добавил Source/Base и Output web.config   -  person Piet Sikkema    schedule 22.06.2020


Ответы (1)


В конечном итоге это исправлено с помощью Web.release.config и вставки определенных узлов httpProtocol и Security с помощью xdt: Transform.

<httpProtocol xdt:Transform="Insert">
  <customHeaders>
    <add name="Access-Control-Allow-Origin" value="*" />
  </customHeaders>
</httpProtocol>
person Piet Sikkema    schedule 27.01.2021