2017-05-18 193 views
0

我有一個dotnet核心應用程序,我將遠程部署在測試服務器上。 ASPNETCORE_ENVIRONMENT變量應在遠程機器上設置爲「開發」。每次部署時,ASPNETCORE_ENVIRONMENT變量都會被「Develop」覆蓋。我必須進入IIS管理配置編輯器,並在每次部署時更換不正確的ASPNETCORE_ENVIRONMENT變量。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> 

回答

0

我相信我已經找到了其他任何人有這個問題的問題/解決方案。

在我編輯IIS管理中的環境變量之前,部署的web.config文件沒有environmentVariable條目。我在我的部署中更改了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>