Erro Consumindo Servicos WCF: Object reference not set to an instance of an object

Os adaptadores do WCF vieram para resolver os problemas de interoperabilidade. Isso quer dizer que podemos usar o WCF para se conectar com qualquer webservice, seja ele em .NET ou em outra tecnologia, diferente do que muitos pensam por ai.

O que temos que ter em mente é que o WCF é feito em cima do padrão W3C, e por isso ele deve ser compatível com outras linguagens.

Porém, as vezes, ao tentar consumir um webservice com o Consume WCF Service Wizard pode resultar em uma mensagem de erro:

 

image

Object reference not set to an instance of an object

Causa:

Isso acontece pois pode ser que o WSDL foi publicado sem a declaração do targetNamespace.

Resolução:

1 - Usar o svcutil.exe para gerar o wsdl e o schema.

Clicar em Iniciar – Todos os Programas – Microsoft Visual Studio 2010 – Visual Studio Tools – Visual Studio Command Prompt. Digitar:

svcutil /target:metadata http://ServicoWCF.com.br/MetodoTeste

Feito isso vai gerar o WSDL e o XML Schema.

 

2 – Alterar o targetNamespace no arquivo WSDL gerado.

Abrir o WSDL gerado e o XML Schema no Visual Studio.

Copiar o targetNamespace do arquivo .xsd e colar no node <xsd:schema> do wsdl. Deve ficar assim:

<xsd:schema targetNamespace=”http://Something.com”>

 

3 - Importar os arquivos gerados com o Wizard Consume WCF Service

Clicar com o botão direito no projeto Add Generated Items – Consume WCF Service.

Escolher a opção Metadata Files (WSDL and XSD)

image

Adicionar os arquivos salvos no passo 2.

image

Deve funcionar agora!

Seja o primeiro a comentar ;)

Postar um comentário

BizTalk 360

Visitas

Arquivo do blog