【问题标题】:Web.config Transforms fail after update to .NET Core 2.1.401更新到 .NET Core 2.1.401 后,Web.config 转换失败
【发布时间】:2019-02-15 02:38:33
【问题描述】:

直到今天早上我更新到 2.1.401,一切都很好。 我有一个 CI/CD 进程(使用 Jenkins),它使用 CLI 命令在生成的 web.config 文件(.NET Core 生成)上运行转换。该文件正是生成的,没有变化:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <location path="." inheritInChildApplications="false">
    <system.webServer>
      <handlers>
        <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
      </handlers>
      <aspNetCore processPath="dotnet" arguments=".\MyService.WebApi.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />
    </system.webServer>
  </location>
</configuration>

由于我们的服务器配置,我需要在 system.webServer 节点中添加一个验证元素。

这是转换文件:

<?xml version="1.0" encoding="utf-8"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <system.webServer>
    <validation validateIntegratedModeConfiguration="false" xdt:Transform="Insert" />
  </system.webServer>
</configuration>

这似乎相当困难。但是现在,自从将.NET Core更新到2.1.401后,遇到了一个错误:

[dotnet-xdt] ERROR '':4:5: DotNet.Xdt.XmlNodeException: No element in 源文档匹配'/configuration/system.webServer/validation'

作为参考,我正在使用 .NET Core CLI 中的 XDT 工具和以下命令:

 dotnet xdt --source .\web.config.full --transform .\web.dev.config --output .\web.config

我不明白为什么会发生这个错误,我不是想匹配那个元素,我想插入元素,所以它当然不存在......它不应该存在!!!

我似乎找不到任何关于 2.1.301 -> 2.1.401 的重大更改的内容,我正在努力修复所有因这个原因而中断的约 20 个工作。

任何见解、想法、指出可能的错误,在这一点上真正有用的任何东西!

【问题讨论】:

    标签: .net-core web-config xdt-transform asp.net-core-cli


    【解决方案1】:

    在 web.config.full 中没有部分 /configuration/system.webServer 节点。但是有/configuration/location/system.webServer节点存在。

    【讨论】:

    • 谢谢。我确实注意到在生成的 web.config 中添加了一个“位置”节点,但在您指出之前我没有注意到差异。为此浪费了很多时间。
    猜你喜欢
    • 2020-05-04
    • 1970-01-01
    • 2020-02-10
    • 2018-02-28
    • 1970-01-01
    • 1970-01-01
    • 2021-09-19
    • 2020-04-22
    • 2020-03-23
    相关资源
    最近更新 更多