Azure Web App 中的 ASP.NET 5 环境名称

Posted

技术标签:

【中文标题】Azure Web App 中的 ASP.NET 5 环境名称【英文标题】:ASP.NET 5 Environment Name in Azure Web App 【发布时间】:2015-08-26 05:19:24 【问题描述】:

在发布到 Azure Web 应用程序时,最好在哪里为 ASP.NET 5 Web 应用程序的每个部署设置环境名称?

我了解需要设置ASPNET_DEV 环境变量。这在发布时可能吗?

这是我们的 powershell 发布脚本:

param($websiteName, $packOutput)

$website = Get-AzureWebsite -Name $websiteName

# get the scm url to use with MSDeploy.  By default this will be the second in the array
$msdeployurl = $website.EnabledHostNames[1]

$publishProperties = @'WebPublishMethod'='MSDeploy';
                        'MSDeployServiceUrl'=$msdeployurl;
                        'DeployIisAppPath'=$website.Name;
                        'Username'=$website.PublishingUsername;
                        'Password'=$website.PublishingPassword

Write-Output "Restarting web app..."
Restart-AzureWebsite -Name $websiteName

Write-Output "Publishing web app..."
$publishScript = "$env:ProgramFiles(x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\Web Tools\Publish\Scripts\default-publish.ps1"

. $publishScript -publishProperties $publishProperties  -packOutput $packOutput

或者我们是否在 Azure 门户中设置了环境变量?这会在部署之间持续存在吗?

如果这很重要,我正在使用带有 dnx451 目标框架的 ASP.NET 5 beta6 库。

【问题讨论】:

您在每个服务器/天蓝色应用程序中设置一次环境变量。您无需在每次发布时部署该变量。 【参考方案1】:

在发布到 Azure Web Apps 时,最好在哪里为 ASP.NET 5 Web 应用程序的每个部署设置环境名称?

@cory-fowler 是对的。使用 App Settings 设置环境名称。至少有四种方法可以做到这一点。

portal.azure.com

浏览 > 所有资源 > MyApp > 设置 > 应用程序设置。

manage.windowsazure.net

Web 应用 > 我的应用 > 配置 > 应用设置。

Azure Command Line Interface (CLI)

npm install -g azure-cli
azure account download
azure account import '~\Downloads\my-credentials.publishsettings'
site appsetting add ASPNET_ENV=Test MyApp 
azure site appsettings list MyApp 

Azure PowerShell

choco install -y windowsazurepowershell 
Get-AzurePublishSettingsFile
Import-AzurePublishSettingsFile '~\Downloads\my-credentials.publishsettings'
$hash = (Get-AzureWebsite -Name "MyApp").AppSettings
$hash.Add("ASPNET_ENV", "Test")
Set-AzureWebsite -Name "MyApp" -AppSettings $hash

如您所见,使用 PowerShell 比使用 CLI 更棘手。注意:安装 Azure PowerShell 后重启控制台窗口。

【讨论】:

注意:manage.windowsazure.net 门户网站一直是sunset。【参考方案2】:

应用设置在部署之间肯定会持续存在,它们是区分云环境的好方法。

我在 2012 年写了一篇关于此的博客文章。Using Environment Variables in App Service vs Cloud Service

【讨论】:

以上是关于Azure Web App 中的 ASP.NET 5 环境名称的主要内容,如果未能解决你的问题,请参考以下文章

从托管在 Azure 中的 Asp.net Core MVC Web App 获取“响应状态代码不表示成功:502(错误网关)”

交换 Azure Web App 部署槽会注销 ASP.NET Core RC2 中的所有用户

ASP.NET Web APP 和 Web API 无限重定向循环中的 Azure AD Open ID Connect OAuth 2.0

从托管为 Azure Web App 的 ASP.NET 5 应用程序记录日志

在 Azure 上部署 Asp.NET Core Web App

ASP.NET 4.5 在 ASP.NET Core 2.0 应用程序下的 Azure Web App 中将 502.5 作为虚拟应用程序抛出