Pergunta

Tudo bem pessoal ..aqui está o acordo -->

Consumi um serviço da web em meu aplicativo de console e consigo invocá-lo com êxito ao executar em minha máquina local.

O problema surge quando implanto o aplicativo em minha caixa Win 2K8.Eu vim pela primeira vez -> O nome remoto não pôde ser resolvido:'www.www.net' -> e então adicionei um WebProxy e conectei-o à propriedade .Proxy do serviço web.

O próximo erro que encontrei é -> A solicitação falhou com status HTTP 407:autentificação requerida.E estou sem ideias para resolver o mesmo.

Eu usei --> .Proxy.Credentials = System.Net.CredentialCache.DefaultCredentials;e também definiram explicitamente credenciais de proxy -> nome de usuário, senha, domínio -> mas sem sucesso

O serviço web funciona bem quando acessado por meio de um navegador de dentro do servidor.

Qualquer ajuda seria muito apreciada.

Obrigado pelo seu tempo.

Atenciosamente,

Foi útil?

Solução 2

ok .. heres o que trabalhou finalmente ->

Entre em contato com os caras NOC (Network) - e eles, por sua vez, ligam um acesso explícito baseado em IP às solicitações / resposta para / a partir do servidor.

Isso resultará em uma violação de segurança - bem, não tenho certeza.

RGDS,

Outras dicas

Você está atrás de um servidor proxy?Seu navegador possui um servidor proxy configurado?407 significa "Autenticação de proxy necessária", portanto, você precisa fornecer credenciais com as quais possa autenticar no servidor proxy.Meu primeiro palpite é que você precisa de algo assim.

  var credentials = new NetworkCredential("username", "password", "domain");
  WebProxy proxy = new WebProxy("YourProxyServerUri", true) { Credentials = credentials };

E então você deve usar o objeto proxy como servidor proxy para seu webservice.

Você também pode usar o servidor proxy configurado pelo sistema:

  WebProxy myProxy = (WebProxy) System.Net.HttpWebRequest.GetSystemWebProxy();

Ou você pode até configurá-lo no web.config (mas acho que não é possível fornecer credenciais aqui:

 <system.net> 
      <defaultProxy useDefaultCredentials="true"> 
         <proxy usesystemdefault="False" proxyaddress="YourProxyServerUri"                
          bypassonlocal="True" /> 
      </defaultProxy> 
 </system.net>

Se tudo funcionar bem, você pode fornecer alguma maneira de configurar o servidor proxy e as credenciais em tempo de execução, fora do seu código.Caso contrário, você sempre terá que recompilar as coisas se algo em seu ambiente de produção ou local mudar.Você pode colocar isso na seção appSettings em web.config, em um banco de dados, app.config etc.

Certifique-se também de fornecer o número de porta correto em suas configurações (por exemplo 192.168.1.100:8888)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top