Подтвердить что ты не робот

Web.config с преобразованием XDT для частичной замены

Я в ситуации, когда я просто хочу обновить часть URL-адреса конечной точки WCF. Сейчас мы делаем это, добавляя разные конфигурации со всеми конечными точками на "разнообразие". Это утомительно для управления. Я хотел бы настроить преобразование в web.config, чтобы сделать это.

Это два примера файлов

Dev

  <endpoint address="http://servicesdev.host.com/RPUtilityServices/LogException.svc/restService"
        behaviorConfiguration="restfulBehavior"
        binding="webHttpBinding"
        contract="Host.RP.Shared.Common.Services.Utility.Interfaces.IExceptionUtilityService"
        name="LogService" />

и еще некоторые из этих

Поэтапное

  <endpoint address="http://servicessta.host.com/RPUtilityServices/LogException.svc/restService"
            behaviorConfiguration="restfulBehavior"
            binding="webHttpBinding"
            contract="Host.RP.Shared.Common.Services.Utility.Interfaces.IExceptionUtilityService"
            name="LogService" />

Разница заключается в том, что servicessta и servicesdev. Теперь у меня также есть услуги и услуги и т.д. Я хотел бы настроить преобразование, чтобы просто заменить " dev" на " sta​​strong > " и т.д., А не весь блок (используя xdt:Transform="Replace")

Но как мне это сделать?

4b9b3361

Ответ 1

Первый фрагмент кода выше (для среды dev) может перейти в Web.config (или Web.debug.config, но также должен добавить преобразование xdt). В Web.release.config (этот будет идти в промежуточную среду) определите следующий элемент.

<endpoint address="http://servicessta.host.com/RPUtilityServices/LogException.svc/restService"
        behaviorConfiguration="restfulBehavior"
        binding="webHttpBinding" 
        contract="Host.RP.Shared.Common.Services.Utility.Interfaces.IExceptionUtilityService"
        name="LogService" xdt:Transform="Replace" />

Обратите внимание, что я добавил xdt: Transform = "Заменить" в файле конфигурации релиза. При наличии этого атрибута параметры, определенные в элементе endpoint, заменяют параметры в вашем базовом файле Web.config.

Подробнее см. MSDN.

UPDATE:

Использование xdt:Transform="Replace" заменит весь элемент <endpoint />. Чтобы выборочно заменить атрибут address элемента <endpoint />, используйте следующее преобразование.

<endpoint address="http://servicessta.host.com/RPUtilityServices/LogException.svc/restService"
 xdt:Transform="SetAttributes(address)"/>

(Обратите внимание, что если есть несколько элементов <endpoint />, вы можете использовать атрибут Locator.)

То, что я сказал, подробно описано на странице MSDN, опубликованной выше.