我想使用VS2010 web.config转换功能,但我不确定我应该使用哪个XPath来替换某个值。
我定义了以下客户端服务端点:
<client>
<endpoint name="IMyService"
address="net.tcp://x.x.x.x:xx/MySvc"
binding="netTcpBinding"
bindingConfiguration="..."
contract="..."
>
<identity>
<servicePrincipalName value="host/testMachine.domain.com" />
</identity>
</endpoint>
</client>
我想用以下值替换servicePrincipalName
节点。
<servicePrincipalName value="host/productionMachine.domain.com" />
由于可能定义了多个客户端端点,我更喜欢使用标识特定端点节点的XPath(在本例中, name =“IMyService”)。
所以在伪代码中,我需要这样做:
<servicePrincipalName value="host/productionMachine.domain.com"
xdt:Transform="Replace"
xdt:Locator="Condition([containing endpoint node] @name='IMyService')"
/>
有人可以告诉我这些方括号应该在哪里,或者向我展示一些替换特定节点的其他时髦方法吗?
答案 0 :(得分:6)
我将匹配并替换端点节点,如下所示:
<client>
<endpoint name="IMyService"
address="net.tcp://x.x.x.x:xx/MySvc"
binding="netTcpBinding"
bindingConfiguration="..."
contract="..."
xdt:Transform="Replace"
xdt:Locator="Match(name)"
>
<identity>
<servicePrincipalName value="host/productionMachine.domain.com" />
</identity>
</endpoint>
</client>