Pessoal,
Criei um webservice (WCF), no visual studio 2010. Quando faço teste do serviço, este funciona normalmente.
Mas, agora preciso passar os parâmetros para o wcf através de um programa desenvolvido em vb6. Chego a acessar o serviço, mas meu wcf não reconhece os dados que o vb6 passa.
Código VB:
Private Sub Command5_Click()
Dim valor As String
Dim strXML
Set client = CreateObject("MSSOAP.SoapClient30")
Call client.mssoapinit("http://localhost/Teste/Service.svc?wsdl")
strXML = "<s:Envelope xmlns:s=""http://schemas.xmlsoap.org/soap/envelope/"">" & _
"<s:Header>" & _
"<Action s:mustUnderstand=""1"" xmlns=""http://schemas.microsoft.com/ws/2005/05/addressing/none"">http://tempuri.org/IService/SelecionaFornecedor</Action>" & _
"</s:Header>" & _
"<s:Body>" & _
"<SelecionaFornecedor xmlns=""http://tempuri.org/"">" & _
"<NomeFornecedor xmlns:d4p1=""http://schemas.datacontract.org/2004/07/WcfCP"" xmlns:i=""http://www.w3.org/2001/XMLSchema-instance"">" & _
"<d4p1:NomeForn>Genivaldo</d4p1:NomeForn>" & _
"</NomeFornecedor>" & _
"</SelecionaFornecedor>" & _
"</s:Body>" & _
"</s:Envelope>"
valor = client.SelecionaFornecedor(strXML)
MsgBox valor
End Sub
Código WCF .vb:
<ServiceContract()>
Public Interface IService
<OperationContract()>
Function SelecionaFornecedor(ByVal NomeFornecedor As clsSelecionaFornecedor) As String
End Interface
<DataContract()>
Public Class clsSelecionaFornecedor
Private vRazao As String
<DataMember()>
Public Property NomeForn() As String
Get
Return vRazao
End Get
Set(ByVal value As String)
vRazao = value
End Set
End Property
End Class
Código WCF .svc :
Public Class Service1
Implements IService
Public Sub New()
End Sub
Public Function SelecionaFornecedor(ByVal NomeFornecedor As clsSelecionaFornecedor) As String Implements IService.SelecionaFornecedor
Return "Nome do Fornecedor: " + NomeFornecedor.NomeForn
End Function
End Class