有没有办法使用Powershell将虚拟目录添加到Azure网站?
背景:我们有一个包含ASP.Net MVC应用程序和Web.API项目的解决方案。我们将应用程序发布到azure网站的根目录中,并将Web.API发布到其下的虚拟目录中。
只要在Azure门户中手动添加虚拟目录,这就可以正常工作。 (由于某种原因,项目设置不会传播到网站设置)。
由于我们希望自动化部署过程,因此我们希望使用Powershell脚本添加缺少的虚拟目录。
答案 0 :(得分:4)
在这里看起来像一个有效的(如果有点复杂)答案:
缺点是:您必须使用AzureResourceManager并使用Microsoft.web / sites / config对象来获取和设置虚拟目录。
答案 1 :(得分:3)
我最近一直在努力做到这一点,并找到了一个更简单的解决方案here:
$website = Get-AzureRmWebApp -Name "myWebApp" -ResourceGroupName "myResourceGroup"
$VDApp = New-Object Microsoft.Azure.Management.WebSites.Models.VirtualApplication
$VDApp.VirtualPath = "/TEST"
$VDApp.PhysicalPath = "site\\TEST"
$VDApp.PreloadEnabled ="YES"
$website.siteconfig.VirtualApplications.Add($VDApp)
$website | Set-azureRmWebApp
答案 2 :(得分:0)
基于Ben的回答:
$props = @{
"virtualApplications" = @(
@{
"virtualPath" = "/";
"physicalPath" = "site\wwwroot";
},
@{
"virtualPath" = "/SOME_VIRTUAL_PATH";
"physicalPath" = "site\wwwroot";
}
)
}
Set-AzureRmResource `
-ResourceGroupName $resourceGroupName `
-ResourceType "Microsoft.Web/sites/config" `
-ResourceName "$appServiceName/web" `
-PropertyObject $props `
-ApiVersion "2015-08-01" `
-Force