Você desenvolve seu serviço WCF e o expõe na web. De repente, vc tenta acessá-lo de dentro da sua empresa, a qual está fortemente solidificada atrás de um Proxy e recebe:
“HTTP 407 Proxy Authentication Required“
O que está acontecendo?
Sua aplicação Cliente não possui as informações de conhecimento e credenciamento do proxy, para poder “sair” para Web e assim atingir seu Serviço.
E como proceder para que meu Cliente possa “sair”?
Devemos configurar 2 rotinas:
1) WebProxy
WebProxy proxy = new WebProxy(“http://IP_Proxy:porta”)
{
Credentials = new NetworkCredential(“user”, “pass”)
};
WebRequest.DefaultWebProxy = proxy;
Desta forma, estamos setando o proxy para nossa aplicação cliente entender e conhecer como utilizar o Proxy, para sair para Web.
2) Expect 100 Continue
No app.config da sua aplicação adicione:
<system.net>
<settings>
<servicePointManager expect100Continue=”false”/>
</settings>
</system.net>
Esta configuração deve ser declarada para que não seja adicionado um header “Expect:100-continue” nas requisições HTTP. Evitando-se assim a seguinte mensagem:
“The remote server returned an unexpected response: (417) Expectation failed”
Referência:
http://www.israelaece.com/post/Expect100Continue-em-servicos-WCF.aspx
Feito isso, provavelmente não terás mais problemas com autenticação do Proxy nos clientes WCF. É isso!