ASPNETCORE_ENVIRONMENT перезаписывается при развертывании

У меня есть основное приложение dotnet, которое я развертываю удаленно на тестовом сервере. Для переменной ASPNETCORE_ENVIRONMENT на удаленном компьютере должно быть установлено значение «Разработка». Каждый раз, когда я развертываю, переменная ASPNETCORE_ENVIRONMENT перезаписывается словом «Разработка». Мне приходится заходить в редактор конфигурации администратора IIS и заменять неправильную переменную ASPNETCORE_ENVIRONMENT при каждом развертывании.

Может ли кто-нибудь помочь мне понять, почему эта переменная перезаписывается каждый раз, когда я развертываю?

Вот мой файл web.config:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.web>
    <compilation>
      <buildProviders>
        <remove extension=".xml" />
        <add extension=".xml" type="System.Web.Compilation.ForceCopyBuildProvider" />
      </buildProviders>
    </compilation>
  </system.web>
  <system.webServer>
    <handlers>
      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
    </handlers>
    <aspNetCore processPath="dotnet" arguments=".\WorkersCompensation.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="true">
            <environmentVariables>
                <clear />
                <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
            </environmentVariables>
        </aspNetCore>
  </system.webServer>
</configuration>

Вот мой файл Dev.pubxml:

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <WebPublishMethod>FileSystem</WebPublishMethod>
    <LastUsedBuildConfiguration>Debug</LastUsedBuildConfiguration>
    <LastUsedPlatform>Any CPU</LastUsedPlatform>
    <SiteUrlToLaunchAfterPublish />
    <LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
    <ExcludeApp_Data>False</ExcludeApp_Data>
    <PublishFramework>netcoreapp1.0</PublishFramework>
    <UsePowerShell>True</UsePowerShell>

     <publishUrl>\\esdev2.elwood.local\D$\Core\WorkersCompensation </publishUrl>
     <DeleteExistingFiles>False</DeleteExistingFiles>
     <ExcludeFoldersFromDeployment>wwwroot\node_modules </ExcludeFoldersFromDeployment>
    <UseMsDeployExe>true</UseMsDeployExe>
  </PropertyGroup>
    <ItemGroup>
      <MsDeploySkipRules Include="SkipNodeModules">
        <AbsolutePath>wwwroot\node_modules</AbsolutePath>
      </MsDeploySkipRules>
    </ItemGroup>
</Project>

person birwin    schedule 18.05.2017    source источник


Ответы (1)


Я считаю, что нашел проблему/решение для всех, у кого есть эта проблема.

В развернутом файле web.config не было записи environmentVariable, пока я не отредактировал переменные среды в IIS Admin. Я изменил файлы web.config и web.Debug.config в своем развертывании, и теперь я получаю правильные переменные среды на сервере IIS. Файл web.config должен соответствовать файлу в моем вопросе выше, но web.Debug.Config теперь выглядит так:

<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <aspNetCore>
    <environmentVariables>
      <clear />
      <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development"  xdt:Locator="Match(name)" />
    </environmentVariables>
  </aspNetCore>
</configuration>
person birwin    schedule 18.05.2017