2017-10-25 3 views
0

environnement変数ASPNETCORE_ENVIRONMENTを「開発」または「プロダクション」に設定するには、各環境ごとに特定のweb.configを使用してウェブサイトを公開する必要があります。asp.netコアWebサイトの展開を設定するにはどうすればいいですか?

これは、そのコンテンツに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> 

は、私は2つの異なる環境を持ちます。 私は、次のコマンドを使用してwebployと私のasp.netのコアのウェブサイトを展開:

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

私webdeployプロファイル

<?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コアプロジェクトを設定することができ内の特定のものがありません適切なweb.configを自動的に対応する環境に送信する(またはその内容を変更する)ために、.csprojまたはwebdeployプロファイルまたは他の場所で、

+1

私は混乱しています。確かにターゲットマシンに環境変数を適切に設定して、それを再び心配することはありませんか?あなたはターゲットマシンが開発と生産の間で変更できると言っていますか? – CalC

+1

いいえ、マシンは異なっていて、あなたは絶対に正しい@ Cal279です。私ができる最良のことは、この環境変数をマシンに直接設定することです。それはすでに私がやったことだし、それがベストプラクティスだと思う。私は後でこの質問を閉じる答えを投稿します。どうも – Armand

答えて

0

@CalCが述べたように、私は異なったターゲットマシンに環境変数を設定したかっただけです。したがって、すでにローカルに設定されているかもしれない、この値を上書きするweb.configを公開することは、確かに危険であり、決定的にそれを行う良い方法ではありません。

答えは:web.configをパブリッシングフォルダに公開するのではなく、ターゲットマシン/フォルダで直接更新するべきです。 この環境変数は、ここでは説明していない他の方法で設定することもできます。

関連する問題