none
ERRO ADICIONAR WEB SERVICE SEFAZ VS 2015/2017, SERIA BUG ? RRS feed

  • Pergunta

  • Alguém poderia dar uma dica como resolver caso tenha passado por isso:
    Estou tendo um problema ao adicionar referencia de web service, na VS versao 2015 e na VS versao 2017, entretanto nas versões VS 2013 e  VS 2010 funciona corretamente.
    Abaixo segue a resposta do web service SEFAZ ao fazer referencia.
    O que me deixa mais intrigado, é que nas versões vs 2010, vs 2013 funciona corretamente, sendo que estas versões estão instaladas na mesma maquina

    There was an error downloading 'https://homologacao.nfe.fazenda.sp.gov.br/ws/nfeconsultaprotocolo4.asmx/$metadata'.
    The underlying connection was closed: An unexpected error occurred on a send.
    Unable to read data from the transport connection: Foi forçado o cancelamento de uma conexão existente pelo host remoto.
    Foi forçado o cancelamento de uma conexão existente pelo host remoto
    Metadata contains a reference that cannot be resolved: 'https://homologacao.nfe.fazenda.sp.gov.br/ws/nfeconsultaprotocolo4.asmx'.
    An error occurred while making the HTTP request to https://homologacao.nfe.fazenda.sp.gov.br/ws/nfeconsultaprotocolo4.asmx. This could be due to the fact that the server certificate is not configured properly with HTTP.SYS in the HTTPS case. This could also be caused by a mismatch of the security binding between the client and the server.
    The underlying connection was closed: An unexpected error occurred on a send.
    Unable to read data from the transport connection: Foi forçado o cancelamento de uma conexão existente pelo host remoto.
    Foi forçado o cancelamento de uma conexão existente pelo host remoto
    If the service is defined in the current solution, try building the solution and adding the service reference again. 
    quarta-feira, 7 de fevereiro de 2018 13:02

Respostas

  • Obrigado pelas dicas Rafael.

    Existem varios posts na internet sobre este tipo de problema, porem nenhum deles fala como foi resolvido.
    Eu consegui resolver da seguinte forma.
    As versões do Visual Studio a partir da versão 2015 tem alguma peculiaridade que para adicionar web service SEFAZ ou outro que tenha os mesmos protocolos de segurança como os da SEFAZ é necessário fazer as atualizações de segurança do windows.
    Após fazer as devidas atualizações, finalmente consegui adicionar o web service sem problema.
    Fica ai a dica para outras pessoas que estão passando por isso.



    quinta-feira, 15 de fevereiro de 2018 16:59

Todas as Respostas

  • Boa tarde, Georgenes Geo. Tudo bem?

    Obrigado por usar  o fórum MSDN.

    O erro persiste? Conseguiu algum avanço no caso?

    Atenciosamente,

    Filipe B de Castro

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    segunda-feira, 12 de fevereiro de 2018 11:42
    Moderador
  • Olá Georgenes Geo

    Tudo bem?

    pelo que estou vendo é problema de certificado, para acessar é necessário um certificado digital, outro detalhe é o WSDL, tente sempre usar assim:

    https://homologacao.nfe.fazenda.sp.gov.br/ws/nfeconsultaprotocolo4.asmx?WSDL 

    Mas no demais é apenas o certificado!Abraços, e espero que já tenha resolvido.


    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    Rafael Almeida
    Microsoft Developer .NET
    Microsoft Certified Professional
    Development Leader at JAMSOFT Informática
    Email: ralms@ralms.net
    Blog -  GitHub  -  LinkedIn -  Twitter

    terça-feira, 13 de fevereiro de 2018 14:15
  • Não é o certificado.
    Ja testei com varios outros certificados e formatei a maquina 2x

    Como eu disse, tenho o Visual Studio 2010 e o 2017 instalado na mesma maquina e mesmo ambiente, entretando no VS 2010 ate a versao VS 2013 funciona, na VS 2015 e 2017 NÃO funciona.
    Detalhe que a SEFAZ mudou o protocolo para TLS 1.2, nao sei se tem alguma coisa haver.

    Dessa forma consigo acessar o WSDL, porem como faço para criar as classes ?
    https://homologacao.nfe.fazenda.sp.gov.br/ws/nfeconsultaprotocolo4.asmx?WSDL 
    • Editado Georgenes Geo quarta-feira, 14 de fevereiro de 2018 12:20
    quarta-feira, 14 de fevereiro de 2018 12:16
  • Infelizmente ainda não consegui solucionar este problema, estou aguardando uma luz para resolver.

    quarta-feira, 14 de fevereiro de 2018 12:17
  • Olá Georgenes Geo

    Eu estou conseguindo acesso a essas informações normalmente. Tanto faz pelo browser ou Visual Studio.

     Quando você importa automaticamente a classe é gerada!


    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    Rafael Almeida
    Microsoft Developer .NET
    Microsoft Certified Professional
    Development Leader at JAMSOFT Informática
    Email: ralms@ralms.net
    Blog -  GitHub  -  LinkedIn -  Twitter

    quarta-feira, 14 de fevereiro de 2018 12:25
  • Não é o certificado.
    Ja testei com varios outros certificados e formatei a maquina 2x

    Como eu disse, tenho o Visual Studio 2010 e o 2017 instalado na mesma maquina e mesmo ambiente, entretando no VS 2010 ate a versao VS 2013 funciona, na VS 2015 e 2017 NÃO funciona.
    Detalhe que a SEFAZ mudou o protocolo para TLS 1.2, nao sei se tem alguma coisa haver.

    Dessa forma consigo acessar o WSDL, porem como faço para criar as classes ?
    https://homologacao.nfe.fazenda.sp.gov.br/ws/nfeconsultaprotocolo4.asmx?WSDL 

    A maioria usa o TLS 1.2 / SSL por motivo de segurança, mais isso não tem nada a ver.

    Não costumo fazer isso, mais como sei que é coisa de sefaz, tributação.... impostos.. posso lhe ajudar remotamente se precisar.

    Caso queira me contate a noite por e-mail: ralms@ralms.net


    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    Rafael Almeida
    Microsoft Developer .NET
    Microsoft Certified Professional
    Development Leader at JAMSOFT Informática
    Email: ralms@ralms.net
    Blog -  GitHub  -  LinkedIn -  Twitter

    quarta-feira, 14 de fevereiro de 2018 12:32
  • Sim, dessa forma funciona.
    O erro que estou falando é quando tenta adicionar referencia do web service pelo visual studio 2017.

    quarta-feira, 14 de fevereiro de 2018 12:33
  • Infelizmente ainda estou tentando solucionar o problema
    quarta-feira, 14 de fevereiro de 2018 12:41
  • Qual a versão do visual Studio que vc consegue adicionar a referencia, porque a versão que ocorre o erro é a 2017, porque eu consigo fazer isso até a versão 2013.

    quinta-feira, 15 de fevereiro de 2018 14:19
  • Olá Georgenes Geo

    Segue informações:

    Microsoft Visual Studio Community 2017 
    Versão 15.5.6
    VisualStudio.15.Release/15.5.6+27130.2027
    Microsoft .NET Framework
    Versão 4.7.02556

    Versão Instalada: Community

    Podemos fazer essa chamada automatizada, caso não consiga.

    Eu utilizo a seguinte classe para consumir o webservice:

    using Proxy.Interfaces;
    using System.Net;
    using System.Security.Cryptography.X509Certificates;
    using System.Web.Services;
    using System.Web.Services.Description;
    using System.Web.Services.Protocols;
    using System.Xml;
    using System.Xml.Serialization;
    
    namespace Transmissao.NFe
    {
        [WebServiceBinding(Name = "NfeAutorizacao4Soap", Namespace = "http://www.portalfiscal.inf.br/nfe/wsdl/NFeAutorizacao4")]
        public class NFeAutorizacaoWSDL400 : SoapHttpClientProtocol, NFeService
        {
            public NFeAutorizacaoWSDL400(string url, X509Certificate certificado, int timeOut)
            {
                SoapVersion = SoapProtocolVersion.Soap12;
                Url = url;
                Timeout = timeOut;
                ClientCertificates.Add(certificado);
            }
    
    
            [SoapDocumentMethod("http://www.portalfiscal.inf.br/nfe/wsdl/NFeAutorizacao4/nfeAutorizacaoLote", Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Bare)]
            [WebMethod(MessageName = "nfeAutorizacaoLote")]
            [return: XmlElement("nfeResultMsg", Namespace = "http://www.portalfiscal.inf.br/nfe/wsdl/NFeAutorizacao4", IsNullable = true)]
            public XmlNode Transmitir([XmlElement(Namespace = "http://www.portalfiscal.inf.br/nfe/wsdl/NFeAutorizacao4")] XmlNode nfeDadosMsg)
            {
                ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
                ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;
                var results = Invoke("nfeAutorizacaoLote", new object[] { nfeDadosMsg });
                return ((XmlNode)(results[0]));
    
            }
    
            [SoapDocumentMethod("http://www.portalfiscal.inf.br/nfe/wsdl/NfeAutorizacao/nfeAutorizacaoLoteZip4", Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Bare)]
            [WebMethod(MessageName = "nfeAutorizacaoLoteZip")]
            [return: XmlElement("nfeResultMsg", Namespace = "http://www.portalfiscal.inf.br/nfe/wsdl/NFeAutorizacao4", IsNullable = true)]
            public XmlNode TransmitirZipado([XmlElement(Namespace = "http://www.portalfiscal.inf.br/nfe/wsdl/NfeAutorizacao4")] string nfeDadosMsgZip)
            {
                var results = Invoke("nfeAutorizacaoLoteZip", new object[] { nfeDadosMsgZip });
                return ((XmlNode)(results[0]));
            }
        }
    }
    

    using System.Xml;
    
    namespace Proxy.Interfaces
    {
        public interface NFeService
        {
            XmlNode Transmitir(XmlNode nfeDadosMsg);
            XmlNode TransmitirZipado(string nfeDadosMsgZip);
        }
    }


    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    Rafael Almeida
    Microsoft Developer .NET
    Microsoft Certified Professional
    Development Leader at JAMSOFT Informática
    Email: ralms@ralms.net
    Blog -  GitHub  -  LinkedIn -  Twitter

    quinta-feira, 15 de fevereiro de 2018 14:42
  • Obrigado pelas dicas Rafael.

    Existem varios posts na internet sobre este tipo de problema, porem nenhum deles fala como foi resolvido.
    Eu consegui resolver da seguinte forma.
    As versões do Visual Studio a partir da versão 2015 tem alguma peculiaridade que para adicionar web service SEFAZ ou outro que tenha os mesmos protocolos de segurança como os da SEFAZ é necessário fazer as atualizações de segurança do windows.
    Após fazer as devidas atualizações, finalmente consegui adicionar o web service sem problema.
    Fica ai a dica para outras pessoas que estão passando por isso.



    quinta-feira, 15 de fevereiro de 2018 16:59
  • Obrigado pelas dicas Rafael.

    Existem varios posts na internet sobre este tipo de problema, porem nenhum deles fala como foi resolvido.
    Eu consegui resolver da seguinte forma.
    As versões do Visual Studio a partir da versão 2015 tem alguma peculiaridade que para adicionar web service SEFAZ ou outro que tenha os mesmos protocolos de segurança como os da SEFAZ é necessário fazer as atualizações de segurança do windows.
    Após fazer as devidas atualizações, finalmente consegui adicionar o web service sem problema.
    Fica ai a dica para outras pessoas que estão passando por isso.



    Fico feliz por ter conseguido!

    E também por você ter compartilhado a solução.


    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    Rafael Almeida
    Microsoft Developer .NET
    Microsoft Certified Professional
    Development Leader at JAMSOFT Informática
    Email: ralms@ralms.net
    Blog -  GitHub  -  LinkedIn -  Twitter

    quinta-feira, 15 de fevereiro de 2018 17:18
  • Bom dia Meu amigo George..

    Sabe dizer quais seriam as atualizações tentei baixar todas que eu podia do windows 7 64bits.. mas nenhuma deu jeito.

    Desde já agradeço

    Leandro Thomaz

    quarta-feira, 16 de maio de 2018 16:10