none
Serviço WCF rodando em ambiente interno com proxy de internet RRS feed

  • Pergunta

  • Pessoal.
    Estou iniciando os trabalhos utilizando WCF para fazer comunicação com um web service https, com certificado digital.
    Mas aqui no ambiente da empresa, utilizamos um proxy (servidor interno) pra acesso a web.
    Alguem pode me indicar como passar estas credenciais utilizando WCF.

    Quando eu utilizava referencias a web service, eu setava o  proxy assim:
    System.Net.WebProxy webProxy = new System.Net.WebProxy(servidorProxy + ":" + portaProxy, true);
    // Configurando autenticação
    System.Net.NetworkCredential credentials = new System.Net.NetworkCredential(loginProxy, senhaProxy);
    webProxy.Credentials = credentials;
    WS.Proxy = webProxy;

    Como passar estes dados no WCF?  Obs:  Quando utilizamos certificado digital.

    Obrigado. Bom trabalho a todos.

    terça-feira, 1 de dezembro de 2009 13:28

Respostas

Todas as Respostas

  • Boas José Geraldo,

    A configuração do proxy é parte do binding:

    BasicHttpBinding b = new BasicHttpBinding();
    b.ProxyAddress = new Uri("teuEnderecoDeProxy");
    http://www.israelaece.com
    terça-feira, 1 de dezembro de 2009 13:58
    Moderador
  • Israel. Continuo com problemas. Vou tentar expor mais claramente o que ocorre:

    Estamos nos conectando à um site "https:" que exige certificado digital. O certificado é passao nas credenciais assim:
    WSNFSe.ClientCredentials.ClientCertificate.Certificate = certX509;


    Eu criei a interface com o contrato, app config configurado e etc.
    Ao executar o codigo utilizando o cliente do WCF, ocorre o erro:
    InnerException = The remote server returned an error: (407) Proxy Authentication Required.
    Message =  There was no endpoint listening at https://bhissdigital.pbh.gov.br/bhiss-ws/nfse that could accept the message.
                     This is often caused by an incorrect address or SOAP action. See InnerException, if present, for more details.

    Fiz algumas pesquisas no msdn mesmo vi a sugestão abaixo:

    The WCF client seems to use the proxy settings from IE.
    To solve this, I simply turned the proxy off in IE as below.
    IE > Tools > Internet Options > Connections > LAN Settings

    Uncheck the box that reads "Use a proxy server"...

    REALMENTE:  Apos desmarcar, eu consegui me conectar e obter os dados do web service

    Será que não tem outra forma, via código de resolver isso?

    obrigado.

    bom trabalho a todos.

     

    • Editado Jose Geraldo quinta-feira, 3 de dezembro de 2009 11:42 Fonte estranha
    quinta-feira, 3 de dezembro de 2009 11:41
  • Boas Jose,

    Tente definindo a propriedade UseDefaultWebProxy para false:

    BasicHttpBinding b = new BasicHttpBinding();
    b.ProxyAddress = new Uri("teuEnderecoDeProxy");
    b.UseDefaultWebProxy = false;
    http://www.israelaece.com
    • Marcado como Resposta Jose Geraldo quinta-feira, 3 de dezembro de 2009 12:13
    quinta-feira, 3 de dezembro de 2009 11:44
    Moderador
  • Israel.  Eu fiz a alteração no app.config e funcionou:

    <

     

    system.serviceModel>
        <
    bindings>
           <
    basicHttpBinding>
           ... useDefaultWebProxy="false">
           ...
    ...

    Mas vou marcar como resposta ok. Obrigado mesmo.

    quinta-feira, 3 de dezembro de 2009 12:12