by Israel Aece
18. January 2010 21:03
Há algum tempo, eu comentei aqui sobre um problema que é comum no WCF, quando publicamos um serviço no IIS, que o endereço público (do domínio) não aparece, mantendo o nome da máquina como endereço para o serviço.
A partir da versão 4.0 do WCF, a Microsoft adicionou um novo behavior de serviço chamado UseRequestHeadersForMetadataAddressBehavior. Ao utilizá-lo, o WCF irá automaticamente gerar os endereços (do documento WSDL e das URIs do seu interior) baseando-se no header da requisição. Abaixo vemos como podemos proceder para habilitar esse recurso, e em seguida, as imagens com o antes e depois desta funcionalidade configurada.
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior>
<useRequestHeadersForMetadataAddress />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>

Além da configuração declarativa como vemos acima, podemos optar também pela forma imperativa. E ainda, este behavior também está disponível para o WCF 3.5 + SP1, a partir deste endereço.