Трансформация web.config: Как применить преобразование во все узла, соответствующее выражению локатора?

StackOverflow https://stackoverflow.com/questions/4637107

Вопрос

Я недавно обнаружил автоматическое преобразование Web.config в инструменте веб-развертывания веб-сайта Visual Studio 2010. Он работает хорошо, но у меня есть сценарий, который я не могу работать. Предположим, у меня есть следующие root web.config

<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>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top