2015-05-06 2 views
0

Я пытаюсь добавить следующее в свой web.config с помощью скрипта powershell.Нужно добавить Access-Control-Allow- * заголовки в 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 

Когда выполняется я получаю следующий результат в осьминога.

ПРЕДУПРЕЖДЕНИЕ: Целевой объект конфигурации «system.webServer/httpProtocol/customHeaders/Access-Control-Allow-Origin не найден на пути 'МАШИНА/WEBROOT/APPHOST/sub.mysite.com'.

Значение не добавлено. Я импортировал модуль WebAdministration, и большинство других настроек работают.

ответ

0

Я думаю, что ваше выражение XPath не соответствует узлу, который вы пытаетесь манипулировать. Попробуйте следующее:

Add-WebConfigurationProperty -PSPath $sitePath ` 
    -Filter 'system.webServer/httpProtocol/customHeaders/add[@name="Access-Control-Allow-Origin"]' ` 
    -Name 'value' -Value '*' -Force 
+0

Привет, попробовал это, не получив предупреждения больше, но свойство все еще не установлено в файле web.config. – Captain0

0

Управление сортировкой осуществляется следующим образом.

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'} 

Надеюсь, что это поможет кому-то в будущем, потраченному впустую лишнему времени на это.

Смежные вопросы