Boa tarde.
Estou iniciando o desenvolvimento de um software para controle e emissão de NF-e para a SEFAZ. A princípio, estou começando pelo básico, onde busco consultar se o serviço selecionado está online, ou não. De maneira simplificada:
Private Sub VerificaStatus()
Dim servicoNFe As ServicosNFe
Dim retornoStatus As RetornoNfeStatusServico
Dim retornoBasico As retConsStatServ
servicoNFe = New ServicosNFe(NFeConfig.CfgServico)
retornoStatus = servicoNFe.NfeStatusServico()
retornoBasico = retornoStatus.Retorno
End Sub
Ele gera o XML para consulta, valida, salva uma cópia no computador, e tudo.... Mas quando vou na função NfeStatusServico:
Public Function NfeStatusServico() As RetornoNfeStatusServico
Dim versaoServico = ServicoNFe.NfeStatusServico.VersaoServicoParaString(_cFgServico.VersaoNfeStatusServico)
Dim ws = CriarServico(ServicoNFe.NfeStatusServico)
If _cFgServico.VersaoNfeStatusServico <> NFe.Classes.Servicos.Tipos.VersaoServico.ve400 Then
ws.nfeCabecMsg = New nfeCabecMsg
ws.nfeCabecMsg.cUF = _cFgServico.cUF
ws.nfeCabecMsg.versaoDados = versaoServico
End If
Dim pedStatus = New consStatServ With {
.cUF = _cFgServico.cUF,
.tpAmb = _cFgServico.tpAmb,
.versao = versaoServico
}
Dim xmlStatus = pedStatus.ObterXmlString()
Validador.Valida(ServicoNFe.NfeStatusServico, _cFgServico.VersaoNfeStatusServico, xmlStatus, cfgServico:=_cFgServico)
Dim dadosStatus = New XmlDocument()
dadosStatus.LoadXml(xmlStatus)
SalvarArquivoXml(DateTime.Now.ParaDataHoraString() & "-ped-sta.xml", xmlStatus)
Dim retorno As XmlNode
Try
retorno = ws.Execute(dadosStatus) '<<< Aqui ocorre um erro!
Catch ex As WebException
Throw FabricaComunicacaoException.ObterException(ServicoNFe.NfeStatusServico, ex)
End Try
Dim retornoXmlString = retorno.OuterXml
Dim retConsStatServ = New retConsStatServ().CarregarDeXmlString(retornoXmlString)
SalvarArquivoXml(DateTime.Now.ParaDataHoraString() & "-sta.xml", retornoXmlString)
Return New RetornoNfeStatusServico(pedStatus.ObterXmlString(), retConsStatServ.ObterXmlString(), retornoXmlString, retConsStatServ)
End Function
A função ws.Execute(dadosStatus) gera um erro:
Namespace NFe.Wsdl.Status
<WebServiceBinding(Name:="NFeStatusServico4Service", Namespace:="http://www.portalfiscal.inf.br/nfe/wsdl/NFeStatusServico4")>
Public Class NfeStatusServico4
Inherits SoapHttpClientProtocol
Implements INfeServico
Public Sub New(ByVal url As String, ByVal certificado As X509Certificate, ByVal timeOut As Integer)
SoapVersion = SoapProtocolVersion.Soap12
Me.Url = url
Me.Timeout = timeOut
ClientCertificates.Add(certificado)
End Sub
<Obsolete("Não utilizar na nfe 4.0")>
Public Property nfeCabecMsg As nfeCabecMsg
Private Property INfeServico_nfeCabecMsg As nfeCabecMsg Implements INfeServico.nfeCabecMsg
Get
Throw New NotImplementedException()
End Get
Set(value As nfeCabecMsg)
Throw New NotImplementedException()
End Set
End Property
<WebMethod(MessageName:="nfeStatusServicoNF"),
SoapDocumentMethod("http://www.portalfiscal.inf.br/nfe/wsdl/NFeStatusServico4/nfeStatusServicoNF", Use:=SoapBindingUse.Literal, ParameterStyle:=SoapParameterStyle.Bare)>
Private Function Execute(<XmlElement(Namespace:="http://www.portalfiscal.inf.br/nfe/wsdl/NFeStatusServico4")> nfeDadosMsg As XmlNode) As <XmlElement("nfeResultMsg", Namespace:="http://www.portalfiscal.inf.br/nfe/wsdl/NFeStatusServico4")> XmlNode Implements INfeServico.Execute
Dim results = Me.Invoke("nfeStatusServicoNF", New Object() {nfeDadosMsg}) '<<<< Aqui nesta linha ocorre o erro
Return CType((results(0)), XmlNode)
End Function
End Class
End Namespace
A seguinte mensagem, é então exibida:

Esse erro eu não estou conseguindo corrigir.
Alguém poderia me ajudar com o mesmo?
Att.,
Giovanni.