none
O servidor remoto retornou uma resposta inesperada: (400) Bad Request. RRS feed

  • Pergunta

  • Quando envio via WCF (post) um array/lista com mais de 2MB utilizando o binding wsHttpBinding o servido envia a seguinte resposta: O servidor remoto retornou uma resposta inesperada: (400) Bad Request. Aumentei o valor da propriedade  maxReceivedMessageSize e o problema não foi resolvido.  O que pode ser ? Segue o stack trace: 

    Server stack trace:
       em System.ServiceModel.Channels.HttpChannelUtilities.ValidateRequestReplyResponse(HttpWebRequest request, HttpWebResponse response, HttpChannelFactory factory, WebException responseException, ChannelBinding channelBinding)
       em System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout)
       em System.ServiceModel.Channels.RequestChannel.Request(Message message, TimeSpan timeout)
       em System.ServiceModel.Channels.ClientReliableChannelBinder`1.RequestClientReliableChannelBinder`1.OnRequest(TRequestChannel channel, Message message, TimeSpan timeout, MaskingMode maskingMode)
       em System.ServiceModel.Channels.ClientReliableChannelBinder`1.Request(Message message, TimeSpan timeout, MaskingMode maskingMode)
       em System.ServiceModel.Channels.ClientReliableChannelBinder`1.Request(Message message, TimeSpan timeout)
       em System.ServiceModel.Security.SecuritySessionClientSettings`1.SecurityRequestSessionChannel.Request(Message message, TimeSpan timeout)
       em System.ServiceModel.Dispatcher.RequestChannelBinder.Request(Message message, TimeSpan timeout)
       em System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
       em System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs)
       em System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
       em System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)

    Exception rethrown at [0]:
       em Maps.Sala.Formulario.Recepcao.Boletagem.Credito.FrmBoletoOperacaoCredito.GravarOperacao() na C:\Users\rogerio.tomazini\Desenvolvimento\Produtos\Sala\trunk\Componentes de Software\Solucao\Maps.Sala.Formulario\Recepcao\Boletagem\Credito\FrmBoletoOperacaoCredito.cs:linha 4284
       em Maps.Sala.Formulario.Recepcao.Boletagem.Credito.FrmBoletoOperacaoCredito.btnSalvar_ItemClick(Object sender, ItemClickEventArgs e) na C:\Users\rogerio.tomazini\Desenvolvimento\Produtos\Sala\trunk\Componentes de Software\Solucao\Maps.Sala.Formulario\Recepcao\Boletagem\Credito\FrmBoletoOperacaoCredito.cs:linha 4994
       em DevExpress.XtraBars.BarItem.OnClick(BarItemLink link)
       em DevExpress.XtraBars.BarBaseButtonItem.OnClick(BarItemLink link)
       em DevExpress.XtraBars.BarItemLink.OnLinkClick()
       em DevExpress.XtraBars.BarItemLink.OnLinkAction(BarLinkAction action, Object actionArgs)
       em DevExpress.XtraBars.BarButtonItemLink.OnLinkAction(BarLinkAction action, Object actionArgs)
       em DevExpress.XtraBars.BarItemLink.OnLinkActionCore(BarLinkAction action, Object actionArgs)
       em DevExpress.XtraBars.ViewInfo.BarSelectionInfo.ClickLink(BarItemLink link)
       em DevExpress.XtraBars.ViewInfo.BarSelectionInfo.UnPressLink(BarItemLink link)
       em DevExpress.XtraBars.Controls.CustomLinksControl.OnMouseUp(MouseEventArgs e)
       em System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
       em System.Windows.Forms.Control.WndProc(Message& m)
       em DevExpress.XtraBars.Controls.DockedBarControl.WndProc(Message& msg)
       em System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
       em System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
       em System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
       em System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
       em System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
       em System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
       em System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
       em System.Windows.Forms.Application.Run(Form mainForm)
       em Maps.Sala.Formulario.Program.Main() na C:\Users\rogerio.tomazini\Desenvolvimento\Produtos\Sala\trunk\Componentes de Software\Solucao\Maps.Sala.Formulario\Program.cs:linha 29
       em System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
       em System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
       em Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
       em System.Threading.ThreadHelper.ThreadStart_Context(Object state)
       em System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       em System.Threading.ThreadHelper.ThreadStart()

     

     

    segunda-feira, 26 de julho de 2010 13:32

Respostas

  • Olá Rogério

    MaxReceivedMessageSize : Obtém ou define o Dimensionar máximo para uma mensagem que pode ser recebido em um canal configurado com essa ligação.

    O valor padrão é 65.536 bytes mas você pode alterar para 2.147.483.647 btyes, veja um exemplo

    <configuration>
     <system.serviceModel>
    
      <bindings>
       <basicHttpBinding>
        <binding name="Binding1"
             maxReceivedMessageSize = "1000000">
         <security mode="None" />
        </binding>
       </basicHttpBinding>
      </bindings>
    
     </system.serviceModel>
    
    </configuration>
    
    

    Você precisa alterar no Web.Config tanto da aplicação client quanto no serviço.

    Quaisquer dúvidas, estou a disposição.

     

     

     


    Marcos Aguiar Jr - Brazil blog: https://marquinhosnet.wordpress.com/
    segunda-feira, 26 de julho de 2010 13:51

Todas as Respostas

  • Olá Rogério

    MaxReceivedMessageSize : Obtém ou define o Dimensionar máximo para uma mensagem que pode ser recebido em um canal configurado com essa ligação.

    O valor padrão é 65.536 bytes mas você pode alterar para 2.147.483.647 btyes, veja um exemplo

    <configuration>
     <system.serviceModel>
    
      <bindings>
       <basicHttpBinding>
        <binding name="Binding1"
             maxReceivedMessageSize = "1000000">
         <security mode="None" />
        </binding>
       </basicHttpBinding>
      </bindings>
    
     </system.serviceModel>
    
    </configuration>
    
    

    Você precisa alterar no Web.Config tanto da aplicação client quanto no serviço.

    Quaisquer dúvidas, estou a disposição.

     

     

     


    Marcos Aguiar Jr - Brazil blog: https://marquinhosnet.wordpress.com/
    segunda-feira, 26 de julho de 2010 13:51
  • Marcos,

    Funcionou perfeitamente configurando o atributo MaxReceivedMessageSize do lado do Servidor(Web.config).

    Grato,

    Rogério Tomazini

    segunda-feira, 26 de julho de 2010 14:53