Как предотвратить автоматическое создание файла web.config в Asp.Net Core API 3.1 при запуске приложения с помощью Visual Studio 2019?

Я разрабатываю API Asp.Net Core 3.1, он работает, как и ожидалось.

Когда я запускаю, он автоматически преобразует исходный файл web.config в новый.

Исходный файл 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=".\EngageAPI.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />
    </system.webServer>
  </location>
</configuration>

Новый файл 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%" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess">
        <environmentVariables>
          <environmentVariable name="COMPLUS_ForceENC" value="1" />
          <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
        </environmentVariables>
      </aspNetCore>
    </system.webServer>
  </location>
</configuration>

Итак, у меня есть два вопроса.

  1. Почему он генерируется автоматически?
  2. Как я могу остановить эту автоматическую генерацию?

Обновление:

Добавление дополнительных пояснений к вопросу:

почему это вызывает проблему? Я делаю развертывание из azure dev ops. и что я делаю, я копирую web.config из своего проекта в пакет, который я создаю. и отметил, что этот web.config изменяется на новый web.config (который имеет %LAUNCHER_PATH% %LAUNCHER_ARGS%) при запуске кода из VS. Так что в основном нам не нужно копировать этот файл web.config. вместо этого нам нужно скопировать тот, который создается в папке публикации.

файл CsProj

  <PropertyGroup>
    <TargetFramework>netcoreapp3.1</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <Folder Include="Models\" />
  </ItemGroup>

  <ItemGroup>
    <PackageReference Include="AutoMapper.Extensions.Microsoft.DependencyInjection" Version="7.0.0" />
    <PackageReference Include="Dapper" Version="2.0.35" />
    <PackageReference Include="Microsoft.Azure.Storage.Blob" Version="11.1.7" />
    <PackageReference Include="Microsoft.Azure.Storage.Common" Version="11.1.7" />
    <PackageReference Include="Microsoft.Extensions.Logging.Log4Net.AspNetCore" Version="3.1.0" />
    <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="3.1.3" />
    <PackageReference Include="Swashbuckle.AspNetCore" Version="5.5.0" />
    <PackageReference Include="Swashbuckle.AspNetCore.Filters" Version="5.1.1" />
    <PackageReference Include="System.Data.SqlClient" Version="4.8.1" />
  </ItemGroup>


</Project>

person vivek nuna    schedule 15.07.2020    source источник
comment
@AmanB, но как? Можете ли вы привести несколько примеров, образец?   -  person vivek nuna    schedule 15.07.2020
comment
Откройте csproj блокнотом и посмотрите, почему генерируется новый конфиг.   -  person jdweng    schedule 15.07.2020
comment
@jdweng Я не вижу ничего, связанного с web.config. Я добавил файл csproj в вопрос   -  person vivek nuna    schedule 15.07.2020


Ответы (1)


Похоже, вы используете IIS вместо IIS Express при отладке.

Попробуйте добавить это в свой файл .csproj:

<ANCMPreConfiguredForIIS>true</ANCMPreConfiguredForIIS>

Также убедитесь, что ваша версия VS ›= VS 16.6.3

Эта проблема была исправлена ​​командой websdk: https://github.com/dotnet/websdk/issues/564#issuecomment-644199581

person Aman B    schedule 15.07.2020
comment
Я использую 16.5.2, в моей версии это невозможно? Я запускаю решение из Visual Studio 2019, используя IIS Express. - person vivek nuna; 15.07.2020
comment
Это vs-версия, которую все подтвердили в треде. Я бы сказал, попробуйте добавить свойство в любом случае и посмотреть, имеет ли это какое-то значение? - person Aman B; 15.07.2020
comment
Это исправило мою проблему. Мой web.config автоматически генерировался и перезаписывал мои изменения. - person user3953989; 20.07.2020
comment
У кого-нибудь есть новая ссылка на эту проблему? Поскольку репозиторий изменился (github.com/dotnet/websdk#this-repo- has-moved), я больше не могу найти проблему. И я не могу найти документацию или ссылку на свойство ANCMPreConfiguredForIIS. В VS16.6.4 (netcore 3.1.3) файл web.config вообще не изменяется, даже если это свойство отсутствует. - person Gregory_Ott; 15.01.2021