Модификация web.config с powershell в Asp.Net Core 2 - PullRequest
0 голосов
/ 03 мая 2018

Мне нужно добавить следующее в мой опубликованный web.config;

<modules runAllManagedModulesForAllRequests="false">
    <remove name="WebDAVModule" />
</modules>

, который я публикую с Asp.Net Core 2, однако, похоже, он не работает;

$webConfig = (Get-Item -Path ".\").FullName + "\Bemfeito.Services.WebApi\obj\Release\netcoreapp2.0\PubTmp\Out\web.config"
$doc = (gc $webConfig) -as [Xml]

$moduleNode = $doc.CreateElement("modules")
$moduleNode.SetAttribute("runAllManagedModulesForAllRequests", "false")
$removeNode = $moduleNode.CreateElement("remove")
$removeNode.SetAttribute("name","WebDAVModule")
$moduleNode.AppendChild($removeNode)

$doc.configuration.system.webServer.AppendChild($moduleNode)

$doc.Save($webConfig)

(я добавляю это как параметр предварительной публикации в моем веб-развертывании) Я думаю, что это как-то связано с неправильным захватом и / или фиксацией сохранений? Может кто-нибудь, пожалуйста, посоветуйте мне, где я иду не так?

1 Ответ

0 голосов
/ 03 мая 2018

Было несколько проблем с добавлением к узлу, но основным оказалось то, что я добавлял к configuration.system.webServer.AppendChild. На самом деле это должно было быть configuartion.'system.webServer'.AppendChild

Для справки мой полный скрипт:

$webConfig = (Get-Item -Path ".\").FullName + 

"\Services.WebApi\obj\Release\netcoreapp2.0\PubTmp\Out\web.config"
$doc = (gc $webConfig) -as [Xml]

$moduleNode = $doc.CreateElement("modules")
$moduleNode.SetAttribute("runAllManagedModulesForAllRequests", "false")


$removeNode = $doc.CreateElement("remove")
$removeNode.SetAttribute("name","WebDAVModule")
$moduleNode.AppendChild($removeNode)

$doc.configuration.'system.webServer'.AppendChild($moduleNode)

$doc.Save($webConfig)
...