8

Niedawno odkryłem automatyczną transformację web.config w narzędziu wdrażania sieci w studio wizualnym 2010. Działa to dobrze, ale mam scenariusz, w którym nie mogę pracować. Przyjmijmy, mam następującą korzeniowy Web.configTransformacja Web.config: jak zastosować transformację do wszystkich węzłów pasujących do wyrażenia 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> 

Dla mojego Web.Release.config, chcę wszystkie końcowych węzłów z wiązania mexHttpBinding zostać usunięte.

Użyłem następujących w moim Web.Release.config:

<services> 
    <service> 
    <endpoint binding="mexHttpBinding" xdt:Locator="Match(binding)" xdt:Transform="Remove" /> 
    </service> 
</services> 

Jednak ta usunie tylko pierwszy mecz, w Service1, ale nie następujące z nich. Próbowałem różnych sposobów lokalizowania węzła, na punkcie końcowym i węzła usług, ale tylko pierwszy mecz zostanie kiedykolwiek zastąpiony.

Czy istnieje sposób, aby usunąć wszystkie <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />?

Dzięki.

+0

Clement tylko jako notatkę należy przyjąć odpowiedź poniżej, a nie tylko komentować. –

Odpowiedz

12

Właśnie próbowałem i korzystania removeAll zamiast Usuń wydaje rade:

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

To się udało. Dzięki ! – Clement

+0

Czy jest coś podobnego, które działałoby dla opcji Wstaw wszystko? InsertAll nie jest rozpoznawany. – grimus

+0

@grimus znalazłeś jakieś rozwiązanie na pytanie "Wstaw wszystko"? –