Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Ricardo Nunes

[Resolvido] Erro ao consumir um asmx

Recommended Posts

Bom dia pessoal!

Estou com um problema que não consigo resolver.

 

Construí um serviço web em c#, onde tenho a seguinte estrutura:

 

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header>
<Header xmlns="http://tempuri.org/">
<User>string</User>
<Password>string</Password>
</Header>
</soap:Header>
<soap:Body>
<CarregarArquivo xmlns="http://tempuri.org/">
<pListaPacote>
<Pacote>
<Arquivo>base64Binary</Arquivo>
<Requisicao>
<Codigo>string</Codigo>
<Mensagem>string</Mensagem>
<Arquivo>string</Arquivo>
<Descricao>string</Descricao>
<Pedido>string</Pedido>
<Usuario>string</Usuario>
<Versao>string</Versao>
</Requisicao>
</Pacote>
<Pacote>
<Arquivo>base64Binary</Arquivo>
<Requisicao>
<Codigo>string</Codigo>
<Mensagem>string</Mensagem>
<Arquivo>string</Arquivo>
<Descricao>string</Descricao>
<Pedido>string</Pedido>
<Usuario>string</Usuario>
<Versao>string</Versao>
</Requisicao>
</Pacote>
</pListaPacote>
</CarregarArquivo>
</soap:Body>
</soap:Envelope>

 

Criei uma aplicação simples em vb.net para consumir o serviço, mas esbarrei no seguinte erro:

 

Error 1 Value of type 'System.Collections.Generic.List(Of ConsumirServico.Pacote)' cannot be converted to '1-dimensional array of ConsumirServico.ServiceReference1.Pacote'. D:\Ricardo\Projetos\ConsumirServico\ConsumirServico\Form1.vb 57 48 ConsumirServico

 

Abaixo o trecho ao qual me refiro:

Dim br As New BinaryReader(fStream)
Dim data As Byte() = br.ReadBytes(CInt(numBytes))
Dim MyHeader As New ServiceReference1.Header

MyHeader.User = txtUsuario.Text
MyHeader.Password = "xxx"

Dim MyResult As New ServiceReference1.TsIntegracaoSawSoapClient
Dim lista As New List(Of ConsumirServico.ServiceReference1.Pacote)
Dim p As ConsumirServico.ServiceReference1.Pacote
Dim r As ConsumirServico.ServiceReference1.Request

p.Arquivo = data 
p.Requisicao.Codigo = "" 
p.Requisicao.Mensagem = "" 
p.Requisicao.Arquivo = nomeArquivo
p.Requisicao.Descricao = "Descrição teste"
p.Requisicao.Pedido = "12345678"
p.Requisicao.Usuario = txtUsuario.Text
p.Requisicao.Versao = "N"
lista.Add(p)

r = MyResult.CarregarArquivo(MyHeader, lista)

 

Alguém tem idéia de como eu posso fazer para resolver isso?

 

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal, desculpem por tomar o tempo de vocês.

Consegui resolver o problema:

 

       Dim br As New BinaryReader(fStream)
       Dim data As Byte() = br.ReadBytes(CInt(numBytes))

       Dim MyHeader As New ServiceReference1.Header
       MyHeader.User = txtUsuario.Text
       MyHeader.Password = "xxx"

       Dim MyResult As New ServiceReference1.TsIntegracaoSawSoapClient
       Dim list As New ArrayList
       Dim p As New ConsumirServico.ServiceReference1.Pacote
       Dim r As New List(Of ConsumirServico.ServiceReference1.Request())

       p.Arquivo = data 
       p.Requisicao.Codigo = "" 
       p.Requisicao.Mensagem = "" 
       p.Requisicao.Arquivo = nomeArquivo
       p.Requisicao.Descricao = "Descrição teste"
       p.Requisicao.Pedido = "12345678"
       p.Requisicao.Usuario = txtUsuario.Text
       p.Requisicao.Versao = "N"

       list.Add(p)

       r.Add(MyResult.CarregarArquivo(MyHeader, list.ToArray()))

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não resolvi, em tempo de execução o problema persiste. Alguém pode me ajudar?

 

Segue o trace:

 

System.InvalidCastException was unhandled

Message=Unable to cast object of type 'System.Object[]' to type 'ConsumirServico.ServiceReference1.Pacote[]'.

Source=ConsumirServico

StackTrace:

at ConsumirServico.Form1.cmdSubmeter_Click(Object sender, EventArgs e) in D:\Ricardo\Projetos\ConsumirServico\ConsumirServico\Form1.vb:line 59

at System.Windows.Forms.Control.OnClick(EventArgs e)

at System.Windows.Forms.Button.OnClick(EventArgs e)

at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)

at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)

at System.Windows.Forms.Control.WndProc(Message& m)

at System.Windows.Forms.ButtonBase.WndProc(Message& m)

at System.Windows.Forms.Button.WndProc(Message& m)

at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)

at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)

at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)

at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)

at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)

at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)

at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun()

at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()

at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine)

at ConsumirServico.My.MyApplication.Main(String[] Args) in 17d14f5c-a337-4978-8281-53493378c1071.vb:line 81

at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)

at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)

at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()

at System.Threading.ThreadHelper.ThreadStart_Context(Object state)

at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)

at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)

at System.Threading.ThreadHelper.ThreadStart()

InnerException:

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.