2017-05-18 1 views
0

J'ai une application de base dotnet que je déploie à distance sur un serveur de test. La variable ASPNETCORE_ENVIRONMENT doit être définie sur "Développement" sur l'ordinateur distant. Chaque fois que je déploie, la variable ASPNETCORE_ENVIRONMENT est remplacée par "Développer". Je dois aller dans l'éditeur de configuration d'administration d'IIS et remplacer la variable ASPNETCORE_ENVIRONMENT incorrecte chaque fois que je déploie.ASPNETCORE_ENVIRONMENT écrasé lors du déploiement

Quelqu'un peut-il m'aider à comprendre pourquoi cette variable est écrasée chaque fois que je la déploie?

Voici mon fichier 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> 

Voici mon fichier 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> 

Répondre

0

Je crois avoir trouvé le problème/solution pour toute autre personne ayant ce problème.

Le fichier web.config déployé n'avait pas l'entrée environmentVariable jusqu'à ce que j'aie modifié les variables d'environnement dans IIS Admin. J'ai modifié les fichiers web.config et web.Debug.config dans mon déploiement et maintenant j'obtiens les variables d'environnement correctes sur le serveur IIS. Le fichier web.config doit correspondre à celui de ma question ci-dessus, mais le fichier web.Debug.Config ressemble maintenant à ceci:

<?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>