c# - transforms - web deploy iis visual studio
Web.config con la transformación XDT para hacer reemplazo parcial (1)
Estoy en una situación en la que solo quiero actualizar una parte de la URL de un punto final de WCF. Ahora mismo lo hacemos al incluir diferentes configuraciones con todos los puntos finales por ''variedad''. Esto es tedioso de manejar. Me gustaría configurar una transformación en web.config para hacerlo.
Estos son dos ejemplos de los archivos.
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" />
y algunos mas de estos
Puesta en escena
<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" />
La diferencia es la servicessta versus servicesdev. Ahora también tengo servicesuat y servicesqa etcera. Me gustaría configurar una transformación para reemplazar simplemente el '' dev '' con '' sta '', etc. y no todo el bloque (usando xdt:Transform="Replace"
)
Pero, ¿cómo hago eso?
La primera parte del código anterior (para el entorno dev) puede ir a Web.config
(o Web.debug.config
pero también tiene que agregar la transformación xdt
). En su Web.release.config
(este irá al entorno de ensayo) defina el siguiente elemento.
<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" />
Tenga en cuenta que agregué xdt: Transform = "Reemplazar" en el archivo de configuración de la versión. Con este atributo presente, las configuraciones definidas dentro del elemento de endpoint
reemplazarán a las de su archivo base Web.config
.
Para obtener más información, consulte MSDN .
ACTUALIZAR:
El uso de xdt:Transform="Replace"
reemplazaría todo el elemento <endpoint />
. Para reemplazar selectivamente el atributo de address
del elemento <endpoint />
use la siguiente transformación.
<endpoint address="http://servicessta.host.com/RPUtilityServices/LogException.svc/restService"
xdt:Transform="SetAttributes(address)"/>
(Tenga en cuenta que si hay varios elementos <endpoint />
puede que también quiera usar el atributo Localizador ).
Lo que dije se describe en detalle en la página de MSDN que publiqué arriba.