Cod*_*ick 5 asp.net web-config-transform xml-document-transform web-release-config web-debug-config
我正在尝试删除Web.Release.config文件中的所有服务端点mexHttpBinding节点.我找到了这个答案 :(
我从我的代码文件中复制了,所以它实际上的格式与答案不同)
<services>
<service>
<endpoint binding="mexHttpBinding"
xdt:Locator="Match(binding)"
xdt:Transform="RemoveAll" />
</service>
</services>
Run Code Online (Sandbox Code Playgroud)
我收到
的警告是在<service>节点上:
缺少必需的属性"名称".
我是否需要在节点的属性中添加空字符串或通配符(如果有)以解决此警告?
此外,上述转换不应该包含在节点中,还是不包含?name<service><system.serviceModel>
这只是一个验证警告,因为您的 xml 不满足架构的验证要求。它实际上并没有什么意义,并且转换通常对完整的 xml 模式无效,因为它们本质上通常是部分定义。转型仍将发挥作用。除非您将属性指定为 xdt 转换条件的一部分,否则在转换中将忽略属性。
是的,您确实需要该<system.serviceModel>元素。
如果您只是想让错误消失,您可以将 service name = 设置为项目中已有的服务名称,但这不会影响转换,它仍然适用于所有服务,因为该名称将被忽略(除非您在具有 name 属性的服务元素上放置了 xdt:locator 约束)。
但如果其他人必须维护它,这可能会令人困惑。最好留下警告并对其进行评论,或者输入名称并对其进行评论,无论哪种方式。
应该注意的是,这些只是编辑警告。它们不是编译器或运行时警告。它们仅在您在编辑器中打开文件时才会出现,并且它们只是智能感知警告,因此它们对应用程序或构建的质量没有真正的影响。