2011-03-30 6 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

+0

이것은 당신을 위해 이제까지 작동 했습니까? – cyanos

+0

그것은 나를 위해 일했다. – BornToCode