Powershell 无法删除所有Azure网站连接字符串
对于我的团队目前正在开发的一个网站,我们正在尝试编写一些PowerShell自动化,以临时覆盖通常位于Web.config中的连接字符串,然后稍后将其删除 但是,使用PowerShell cmdlet和Azure REST API,我们似乎无法将连接字符串设置为空。每当我们试图删除它时,要么命令说它成功了,但没有删除它,要么请求被拒绝为无效 可以使用管理门户删除所有连接字符串,那么我们缺少了什么,这意味着我们不能以编程的方式执行呢 下面是一个示例PowerShell命令,我们正在使用它,但它并没有达到我们的目的:Powershell 无法删除所有Azure网站连接字符串,powershell,azure,azure-web-app-service,Powershell,Azure,Azure Web App Service,对于我的团队目前正在开发的一个网站,我们正在尝试编写一些PowerShell自动化,以临时覆盖通常位于Web.config中的连接字符串,然后稍后将其删除 但是,使用PowerShell cmdlet和Azure REST API,我们似乎无法将连接字符串设置为空。每当我们试图删除它时,要么命令说它成功了,但没有删除它,要么请求被拒绝为无效 可以使用管理门户删除所有连接字符串,那么我们缺少了什么,这意味着我们不能以编程的方式执行呢 下面是一个示例PowerShell命令,我们正在使用它,但它并没
$website = Get-AzureWebsite $websiteName -slot $websiteSlot
$connectionStrings = $website.ConnectionStrings
$result = $connectionStrings.Remove(($connectionStrings | Where-Object {$_.Name -eq $connectionStringName}))
Set-AzureWebsite $websiteName -slot $websiteSlot -ConnectionStrings $connectionStrings
我知道现在已经很晚了 我也遇到过同样的情况。我们可以更新应用程序设置,但不能更新连接字符串。我找到了解决方案。由于没有答案,我认为最好更新它 根据,哈希表(嵌套)的格式需要为
@{ KeyName = @{ Type = "MySql"; Value = "MySql Connection string"}};
之后,我运行代码更新应用程序,它工作了。下面是整个代码
$list = @{ ConnectionString1 = @{ Type = "MySql"; Value = "MySql Connection string"}};
set-AzureRMWebAppSlot -ResourceGroupName "resourceGroup" -Name "devTest" -ConnectionStrings $list -slot "production"
在我看来,这似乎是一个bug。Microsoft最近声明,新的Azure门户由相同的公共API驱动,那么如何能够从UI中删除设置,而不是通过PowerShell?用户界面是如何删除设置的?我不知道,你得问微软。但是,这在我看来应该行得通。顺便说一句,如果你想关注的话,这里有一个链接,指向我昨晚在这个问题上打开的一个问题。