2011-03-30 51 views
4

我想使用VS2010的web.config轉換功能,但我不確定應該用來替換某個值的XPath。轉換web.config中的特定節點

我有以下的客戶服務端點定義:

<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(在這種情況下,當名稱=「IMyService」)。

因此,在僞代碼,我需要這樣做:

<servicePrincipalName value="host/productionMachine.domain.com" 
         xdt:Transform="Replace" 
         xdt:Locator="Condition([containing endpoint node] @name='IMyService')" 
         /> 

有人能告訴我什麼都要去的地方的方括號,或者告訴我更換特定節點的一些其他時髦的方式嗎?

回答

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> 
+0

謝謝,我就可以在一兩天內(這是這裏的週末),以測試這一點,我會告訴你知道它是怎麼回事。 – slugster 2011-07-23 01:34:41

+0

這有史以來爲你工作,slu?? – cyanos 2012-10-19 16:32:18

+0

它爲我工作。 – BornToCode 2015-02-18 10:41:55