2017-10-25 25 views
0

환경 변수 ASPNETCORE_ENVIRONMENT을 "개발"또는 "프로덕션"으로 설정하려면 각 환경에 대한 특정 web.config를 사용하여 웹 사이트를 게시해야합니다. asp.net 핵심 웹 사이트의 배포를 구성하는 방법은 무엇입니까?

는 콘텐츠와의 Web.config를 전송함으로써 달성 될 수있다 :

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <system.webServer> 
    <handlers> 
     <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" /> 
    </handlers> 
    <aspNetCore processPath="dotnet" arguments=".\myProject.dll" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout"> 
     <environmentVariables> 
     <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" /> 
     </environmentVariables> 
    </aspNetCore> 
    </system.webServer> 
</configuration> 

내가이 개 서로 다른 환경이 "개발"및 "생산". 내 webdeploy 프로필에없는 특정 일을이

msbuild myProject.csproj /p:PublishProfile=webdeploy-dev /p:DeployOnBuild=true 
/p:AllowUntrustedCertificate=True /p:Password=... 

<?xml version="1.0" encoding="utf-8"?> 
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <PropertyGroup> 
    <WebPublishMethod>MSDeploy</WebPublishMethod> 
    <PublishProvider>AzureWebSite</PublishProvider> 
    <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration> 
    <ExcludeApp_Data>False</ExcludeApp_Data> 
    <LastUsedPlatform>Any CPU</LastUsedPlatform> 
    <SiteUrlToLaunchAfterPublish>https://my.test.com</SiteUrlToLaunchAfterPublish> 
    <LaunchSiteAfterPublish>True</LaunchSiteAfterPublish> 
    <MSDeployServiceURL>my.test.com</MSDeployServiceURL> 
    <DeployIisAppPath>my.test.com</DeployIisAppPath> 
    <SkipExtraFilesOnServer>True</SkipExtraFilesOnServer> 
    <MSDeployPublishMethod>RemoteAgent</MSDeployPublishMethod> <!-- MsDepSvc , WMSVC, RemoteAgent --> 
    <EnableMSDeployBackup>True</EnableMSDeployBackup> 
    <AuthType>NTLM</AuthType> 
    <UserName>myusername</UserName> 
    <EnableMSDeployAppOffline>true</EnableMSDeployAppOffline> 
    </PropertyGroup> 
</Project> 

어떻게 내 asp.net 핵심 프로젝트를 구성 할 수 있습니다 : 나는 다음과 같은 명령을 사용하여 webploy 내 asp.net 코어 웹 사이트를 배포 .csproj 또는 webdeploy 프로필 또는 다른 곳에서 적절한 web.config를 자동으로 보내거나 해당 내용을 해당 환경으로 보내려면?

+1

혼란 스럽습니다. 분명히 타겟 머신에 환경 변수를 적절하게 설정 한 다음 다시는 걱정하지 않아도 될까요? 대상 컴퓨터가 개발과 생산 간을 전환 할 수 있다고 말하고 있습니까? – CalC

+1

아니요, 컴퓨터가 다르며 절대적으로 올바른 @ Cal279입니다. 제가 할 수있는 최선의 방법은이 환경 변수를 컴퓨터에 직접 설정하는 것입니다. 그것은 이미 내가 한 일이며 최선의 방법이라고 생각합니다. 나중에 그 질문을 닫을 답변을 게시 할 것입니다. 고마워 – Armand

답변

0

@CalC가 말했듯이, 나는 다른 대상 기계에서 환경 변수를 설정하기를 원했습니다. 따라서 이미 로컬로 설정되어있을 수있는이 값을 덮어 쓰는 web.config를 게시하는 것은 확실히 위험하고 확실히 그것을 수행하는 좋은 방법이 아닙니다.

따라서 대답은 게시 폴더에 web.config를 게시하지 말고 대상 컴퓨터/폴더에서 직접 업데이트해야합니다. 여기에서 다루지 않는 다른 방법으로이 환경 변수를 설정할 수도 있습니다.