none
Problema com aplicação desktop usando webservice e proxy RRS feed

  • Pergunta

  • Bom dia,

    Estou com um problema. Aqui temos uma aplicação desktop para uso interno, e esta aplicação conecta-se a um webservice. Porém em um cliente onde temos uma equipe, está sendo utilizado proxy.
    Então estou com problemas para rodar esta aplicação. No projeto colocamos no arquivo .settings o Proxy_user, Proxy_password e o Proxy. E passmos para a esquipe colocar seus dados no app.config e rodar. E não funcionou.

    Agradeço a ajuda desde já.

    public void InicializaServico()
    {
             metodo = new localhost.Service();
             if (!string.IsNullOrEmpty(Properties.Settings.Default.Proxy))
             {
                 System.Net.NetworkCredential Credentials = new System.Net.NetworkCredential(Properties.Settings.Default.Proxy_User, Properties.Settings.Default.Proxy_Password);
                 System.Net.WebProxy Proxy = new System.Net.WebProxy(Properties.Settings.Default.Proxy, 3128);
                 Proxy.Credentials = Credentials;
                                   
                 metodo.Proxy = Proxy;
             }           
    }



    Este é o print do erro:

    ************** Texto de Exceção **************
    System.Net.WebException: Falha na solicitação com status HTTP 407: Proxy Authentication Required.
       em System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
       em System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
       em Moleque.localhost.Service.RecuperaSenha(String login)
       em Moleque.EntradaSaida.btnOK_Click(Object sender, EventArgs e)
       em System.Windows.Forms.Control.OnClick(EventArgs e)
       em System.Windows.Forms.Button.OnClick(EventArgs e)
       em System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
       em System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
       em System.Windows.Forms.Control.WndProc(Message& m)
       em System.Windows.Forms.ButtonBase.WndProc(Message& m)
       em System.Windows.Forms.Button.WndProc(Message& m)
       em System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
       em System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
       em System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


    ************** Conjuntos de Módulos (Assemblies) Carregados **************
    mscorlib
        Versão do Conjunto de Módulos (Assembly): 2.0.0.0
        Versão do Win32: 2.0.50727.3082 (QFE.050727-3000)
        Base de Código: file:///c:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
    ----------------------------------------
    PandorgaTools
        Versão do Conjunto de Módulos (Assembly): 1.0.0.3
        Versão do Win32: 1.0.0.3
        Base de Código: file:///C:/Arquivos%20de%20programas/Pandorga%20Tecnologia/PaTo/PandorgaTools.exe
    ----------------------------------------
    System.Windows.Forms
        Versão do Conjunto de Módulos (Assembly): 2.0.0.0
        Versão do Win32: 2.0.50727.3053 (netfxsp.050727-3000)
        Base de Código: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
    ----------------------------------------
    System
        Versão do Conjunto de Módulos (Assembly): 2.0.0.0
        Versão do Win32: 2.0.50727.3053 (netfxsp.050727-3000)
        Base de Código: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
    ----------------------------------------
    System.Drawing
        Versão do Conjunto de Módulos (Assembly): 2.0.0.0
        Versão do Win32: 2.0.50727.3053 (netfxsp.050727-3000)
        Base de Código: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
    ----------------------------------------
    System.Configuration
        Versão do Conjunto de Módulos (Assembly): 2.0.0.0
        Versão do Win32: 2.0.50727.3053 (netfxsp.050727-3000)
        Base de Código: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Configuration/2.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
    ----------------------------------------
    System.Xml
        Versão do Conjunto de Módulos (Assembly): 2.0.0.0
        Versão do Win32: 2.0.50727.3082 (QFE.050727-3000)
        Base de Código: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll
    ----------------------------------------
    System.Web.Services
        Versão do Conjunto de Módulos (Assembly): 2.0.0.0
        Versão do Win32: 2.0.50727.3053 (netfxsp.050727-3000)
        Base de Código: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Web.Services/2.0.0.0__b03f5f7f11d50a3a/System.Web.Services.dll
    ----------------------------------------
    System.Data
        Versão do Conjunto de Módulos (Assembly): 2.0.0.0
        Versão do Win32: 2.0.50727.3053 (netfxsp.050727-3000)
        Base de Código: file:///C:/WINDOWS/assembly/GAC_32/System.Data/2.0.0.0__b77a5c561934e089/System.Data.dll
    ----------------------------------------
    5chtbsm7
        Versão do Conjunto de Módulos (Assembly): 1.0.0.3
        Versão do Win32: 2.0.50727.3053 (netfxsp.050727-3000)
        Base de Código: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
    ----------------------------------------
    Microsoft.JScript
        Versão do Conjunto de Módulos (Assembly): 8.0.0.0
        Versão do Win32: 8.0.50727.3053
        Base de Código: file:///C:/WINDOWS/assembly/GAC_MSIL/Microsoft.JScript/8.0.0.0__b03f5f7f11d50a3a/Microsoft.JScript.dll
    ----------------------------------------
    System.resources
        Versão do Conjunto de Módulos (Assembly): 2.0.0.0
        Versão do Win32: 2.0.50727.42 (RTM.050727-4200)
        Base de Código: file:///C:/WINDOWS/assembly/GAC_MSIL/System.resources/2.0.0.0_pt-BR_b77a5c561934e089/System.resources.dll
    ----------------------------------------
    System.Web.Services.resources
        Versão do Conjunto de Módulos (Assembly): 2.0.0.0
        Versão do Win32: 2.0.50727.42 (RTM.050727-4200)
        Base de Código: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Web.Services.resources/2.0.0.0_pt-BR_b03f5f7f11d50a3a/System.Web.Services.resources.dll
    ----------------------------------------
    System.Windows.Forms.resources
        Versão do Conjunto de Módulos (Assembly): 2.0.0.0
        Versão do Win32: 2.0.50727.42 (RTM.050727-4200)
        Base de Código: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms.resources/2.0.0.0_pt-BR_b77a5c561934e089/System.Windows.Forms.resources.dll
    ----------------------------------------
    mscorlib.resources
        Versão do Conjunto de Módulos (Assembly): 2.0.0.0
        Versão do Win32: 2.0.50727.3082 (QFE.050727-3000)
        Base de Código: file:///c:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
    ----------------------------------------

    ************** Depuração JIT **************
    Para habilitar a depuração just-in-time (JIT), o arquivo .config deste
    aplicativo ou computador (machine.config) deve ter o valor
    jitDebugging definido na seção system.windows.forms.
    O aplicativo também deve ser compilado com a depuração
    habilitada.

    Por exemplo:

    <configuration>
        <system.windows.forms jitDebugging="true" />
    </configuration>

    Quando a depuração JIT está habilitada, qualquer exceção não tratada
    será enviada ao depurador JIT registrado no computador,
    em vez de ser tratada nesta caixa de diálogo.
    _
    Iterar é humano, a recursão é divina. Espero ter ajudado, att.
    segunda-feira, 13 de julho de 2009 20:36

Respostas

  • Não se se vcs usam o active directory, mas é possivel configurar por la....

    outra possibilidade é configurar pelo registro do windows (nao lembro de cor... mas sei que da)....

    Ah sim... bem aqui na empresa nao tinha o usuario e senha, mas numa unidade nova tem.... e colocando na lista de excessao do proxy funciona sim, mas se o seu webservice nao esta na rede interna e sim na internet... ai nao vai ajudar mesmo...


    Se não funciona de um jeito, tente de outro totalmente diferente ^_^
    terça-feira, 14 de julho de 2009 18:17
    Moderador
  • Bom dia, Varito.

    A solução que encontrei foi utilizar a classe GlobalProxySelection(Contém uma instância de proxy padrão global para todas as solicitações HTTP).

    Exemplo:

    Classe que representa o Proxy (as configurações que ele possui).

        public class ProxyCliente

        {

            public string Servidor { get; set; }

            public int Porta { get; set; }

            public string Usuario { get; set; }

            public string Senha { get; set; }

            public string Dominio { get; set; }

        }

    Informando as configurações do Proxy que serão utilizadas para qualquer solicitação HTTP.

    WebProxy objWebProxy = new WebProxy(objProxyCliente.Servidor, objProxyCliente.Porta);

    objWebProxy.Credentials = new NetworkCredential(objProxyCliente.Usuario, objProxyCliente.Senha, objProxyCliente.Dominio);

    GlobalProxySelection.Select = objWebProxy; //Adiciona as configurações do proxy as requisições HTTP


    Guilherme Pizolato (MCP) - Microsoft Certified Professional
    quarta-feira, 15 de julho de 2009 13:07
  • Olá,

    Veja se te ajuda -> http://support.microsoft.com/?id=318140


    Abraço,
    Nelson Borges - http://nelsonborgesjr.spaces.live.com/blog/
    quinta-feira, 16 de julho de 2009 03:53

Todas as Respostas

  • Não testei mas ve se essa solução te ajuda

    http://social.msdn.microsoft.com/Forums/pt-BR/webservicespt/thread/17001519-b868-4d1d-815a-dca6670047dd


    Se não funciona de um jeito, tente de outro totalmente diferente ^_^
    terça-feira, 14 de julho de 2009 17:34
    Moderador

  • Acho que não funciona....

    Pelo menos o esquema de "desviar" do proxy lá no cliente acho que não funciona, pelo que o pessoal aqui disse, não tem como deviar já que tem usuário e senha pra autenticar e tal.
    Iterar é humano, a recursão é divina. Espero ter ajudado, att.
    terça-feira, 14 de julho de 2009 17:57
  • Não se se vcs usam o active directory, mas é possivel configurar por la....

    outra possibilidade é configurar pelo registro do windows (nao lembro de cor... mas sei que da)....

    Ah sim... bem aqui na empresa nao tinha o usuario e senha, mas numa unidade nova tem.... e colocando na lista de excessao do proxy funciona sim, mas se o seu webservice nao esta na rede interna e sim na internet... ai nao vai ajudar mesmo...


    Se não funciona de um jeito, tente de outro totalmente diferente ^_^
    terça-feira, 14 de julho de 2009 18:17
    Moderador
  • Bom dia, Varito.

    A solução que encontrei foi utilizar a classe GlobalProxySelection(Contém uma instância de proxy padrão global para todas as solicitações HTTP).

    Exemplo:

    Classe que representa o Proxy (as configurações que ele possui).

        public class ProxyCliente

        {

            public string Servidor { get; set; }

            public int Porta { get; set; }

            public string Usuario { get; set; }

            public string Senha { get; set; }

            public string Dominio { get; set; }

        }

    Informando as configurações do Proxy que serão utilizadas para qualquer solicitação HTTP.

    WebProxy objWebProxy = new WebProxy(objProxyCliente.Servidor, objProxyCliente.Porta);

    objWebProxy.Credentials = new NetworkCredential(objProxyCliente.Usuario, objProxyCliente.Senha, objProxyCliente.Dominio);

    GlobalProxySelection.Select = objWebProxy; //Adiciona as configurações do proxy as requisições HTTP


    Guilherme Pizolato (MCP) - Microsoft Certified Professional
    quarta-feira, 15 de julho de 2009 13:07
  • Olá,

    Veja se te ajuda -> http://support.microsoft.com/?id=318140


    Abraço,
    Nelson Borges - http://nelsonborgesjr.spaces.live.com/blog/
    quinta-feira, 16 de julho de 2009 03:53