6

我正在尝试删除Web.Release.config文件中的所有服务端点 mexHttpBinding节点。我找到了这个答案:( 我从我的代码文件中复制,所以它的格式实际上与答案不同)


<services>
    <service>

        <endpoint binding="mexHttpBinding"
                  xdt:Locator="Match(binding)"
                  xdt:Transform="RemoveAll" />

    </service>
</services>


我收到 的警告<service>在节点上:

缺少必需的属性“名称”。


我是否需要在节点的属性中添加一个空字符串或通配符(如果有)来解决此警告? 另外,上述转换是否应该与节点一起包装,或者不?name<service>

<system.serviceModel>

4

2 回答 2

4

这只是一个验证警告,因为您的 xml 不符合架构的验证要求。它实际上并没有任何意义,并且转换通常对完整的 xml 模式无效,因为它们本质上通常是部分定义。转型仍将奏效。除非您将属性指定为 xdt 转换条件的一部分,否则转换中将忽略属性。

是的,您确实需要该<system.serviceModel>元素。

如果您只是想让错误消失,您可以将 service name = 设置为您在项目中拥有的服务名称,但这不会影响转换,它仍然适用于所有服务,因为该名称将被忽略(除非您将 xdt:locator 约束放在具有 name 属性的服务元素上)。

但是,如果其他人必须维护它,它可能会令人困惑。最好留下警告并评论它,或者输入名称并评论它,无论哪种方式。

应该注意的是,这些只是编辑器警告。它们不是编译器或运行时警告。它们仅在您在编辑器中打开文件时出现,并且它们只是智能警告,因此它们对您的应用程序或构建的质量没有真正的影响。

于 2014-12-31T23:27:39.977 回答
-1

您需要为服务命名。

<service name="serviceName">

需要参与:<system.serviceModel>

于 2014-12-30T19:41:24.080 回答