我正在尝试使用powershell脚本将以下内容添加到我的web.config中。
<system.webServer>
<httpProtocol>
<customHeaders>
<clear />
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="Content-Type" />
<add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
</customHeaders>
</httpProtocol>
这是我拥有的powershell代码snippit(仅包括前1个,其他两个看起来相同)
Write-Host "Importing WebAdministration"
Import-Module WebAdministration
cd IIS:\
$sitePath = ("IIS:\Sites\test.test1.com")
Write-Host "This works"
Set-WebConfigurationProperty system.web/sessionState $sitePath -Name mode - Value Off
Write-Host "Does not work"
Set-WebConfigurationProperty -PSPath $sitePath -Filter 'system.webServer/httpProtocol/customHeaders/add[@name="Access-Control-Allow-Origin"]' -Name 'value' -Value '*' -Force
执行此操作时,我会在章鱼中获得以下结果。
警告:目标配置对象 &#39; system.webServer / httpProtocol / customHeaders / Access-Control-Allow-Origin不是 发现于路径&#39; MACHINE / WEBROOT / APPHOST / sub.mysite.com&#39;。
未添加该值。我已导入WebAdministration模块,并且大多数其他设置都有效。
答案 0 :(得分:1)
管理以使用以下内容对其进行排序。
Add-WebConfigurationProperty //system.webServer/httpProtocol/customHeaders "IIS:\sites\test.test1.com" -AtIndex 0 -Name collection -Value @{name='Access-Control-Allow-Origin';value='*'}
Add-WebConfigurationProperty //system.webServer/httpProtocol/customHeaders "IIS:\sites\test.test1.com" -AtIndex 0 -Name collection -Value @{name='Access-Control-Allow-Headers';value='Content-Type'}
Add-WebConfigurationProperty //system.webServer/httpProtocol/customHeaders "IIS:\sites\test.test1.com" -AtIndex 0 -Name collection -Value @{name='Access-Control-Allow-Methods';value='GET, OPTIONS'}
希望这有助于将来的某些人,浪费时间。
答案 1 :(得分:0)
我认为您的XPath表达式与您尝试操作的节点不匹配。试试这个:
Add-WebConfigurationProperty -PSPath $sitePath `
-Filter 'system.webServer/httpProtocol/customHeaders/add[@name="Access-Control-Allow-Origin"]' `
-Name 'value' -Value '*' -Force