Web.config转换:如何将转换应用于与Locator表达式匹配的所有节点?
问题描述:
我最近在Visual Studio 2010的web部署工具中发现了web.config自动转换。 它运行良好,但我有一个我似乎无法工作的场景。 假设我有以下根Web.configWeb.config转换:如何将转换应用于与Locator表达式匹配的所有节点?
<services>
<service name="Service1">
<endpoint address="" binding="customBinding" bindingConfiguration="LargeBufferBinding"
contract="Service1" />
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
<service name="Service2">
<endpoint address="" binding="customBinding" bindingConfiguration="LargeBufferBinding"
contract="Service2" />
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
<service name="Service3">
<endpoint address="" binding="customBinding" bindingConfiguration="LargeBufferBinding"
contract="Service3" />
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
</services>
对于我Web.Release.config,我想所有mexHttpBinding的结合要删除的端点节点。
我用我的Web.Release.config如下:
<services>
<service>
<endpoint binding="mexHttpBinding" xdt:Locator="Match(binding)" xdt:Transform="Remove" />
</service>
</services>
然而,这只会删除第一场比赛,在服务1,而不是下面的。 我已经尝试过在终端和服务节点上定位节点的各种方式,但只有第一场比赛被替换。
有没有办法让所有的<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
被删除?
谢谢。
答
我只是尝试这样做,用的removeAll,而不是删除的,似乎这样的伎俩:
<services>
<service>
<endpoint binding="mexHttpBinding" xdt:Locator="Match(binding)" xdt:Transform="RemoveAll" />
</service>
</services>
+0
这样做。谢谢 ! – Clement 2011-02-10 07:27:15
克莱门特只是作为一个音符,你应该接受下面的答案,而不是它只是发表评论。 – 2011-06-21 20:12:14