在 Asp.Net Core 2 中使用 powershell 修改 web.config

Modifying web.config with powershell in Asp.Net Core 2

我需要将以下内容添加到我发布的 web.config;

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

我正在使用 Asp.Net 核心 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)

(我将其添加为我的 webdeploy 上的预发布选项)我认为这与未正确抓取 and/or 提交保存有关?有人可以告诉我哪里出错了吗?

附加到节点有很多问题,但主要的问题是我附加到 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)