【问题标题】:Transfer large data object via WCF client to WCF server通过 WCF 客户端将大数据对象传输到 WCF 服务器
【发布时间】:2012-02-11 11:38:38
【问题描述】:

我正在尝试通过 WCF 从 WinForms 客户端传输大型数据对象。

当客户端尝试从服务器获取对象时,传输成功;但 当客户端尝试将对象发送到服务器时,出现错误!

错误是:

在 System.ServiceModel.Channels.HttpChannelUtilities.ProcessGetResponseWebException(WebException webException, HttpWebRequest 请求, HttpAbortReason abortReason)
在 System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply(时间跨度 超时)在 System.ServiceModel.Channels.RequestChannel.Request(消息消息, TimeSpan 超时)在 System.ServiceModel.Channels.ClientReliableChannelBinder1.RequestClientReliableChannelBinder1.OnRequest(TRequestChannel 通道、消息消息、TimeSpan 超时、MaskingMode maskingMode)
在 System.ServiceModel.Channels.ClientReliableChannelBinder1.Request(Message message, TimeSpan timeout, MaskingMode maskingMode) at System.ServiceModel.Channels.ClientReliableChannelBinder1.Request(消息 消息,TimeSpan 超时)在 System.ServiceModel.Security.SecuritySessionClientSettings`1.SecurityRequestSessionChannel.Request(消息 消息,TimeSpan 超时)在 System.ServiceModel.Dispatcher.RequestChannelBinder.Request(消息 消息,TimeSpan 超时)在 System.ServiceModel.Channels.ServiceChannel.Call(字符串动作, Boolean oneway, ProxyOperationRuntime 操作, Object[] ins, Object[] 出局,TimeSpan 超时)在 System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall,ProxyOperationRuntime 操作)在 System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage 留言)

我尝试添加行为属性DataContractSerializer 并将其设置为最大值。传输只有一种方式 - 从服务器到客户端!另一方面 - 从客户端到服务器它不起作用!

感谢您的帮助。

【问题讨论】:

  • 能否包含异常的ErrorMessage?
  • 您可以发布您在客户端和服务器上的配置吗?

标签: c# wcf serialization deserialization


【解决方案1】:

尝试将以下参数添加到您的 web.config 文件(根据您的情况调整值):

<behaviors>
    <serviceBehaviors>
        <behavior name="">
            <dataContractSerializer maxItemsInObjectGraph="6553600"/>
        </behavior>
    </serviceBehaviors>
</behaviors>

...    

<system.webServer>
    <security>
        <requestFiltering>
            <requestLimits maxAllowedContentLength="512000000" />
        </requestFiltering>
    </security>
</system.webServer>

【讨论】:

【解决方案2】:

有几个设置可以控制消息的最大大小

  • 最大缓冲区大小
  • MaxReceivedMessageSize
  • 最大字符串内容长度

见:http://geekswithblogs.net/niemguy/archive/2007/12/11/wcf-maxstringcontentlength-maxbuffersize-and-maxreceivedmessagesize.aspx

【讨论】:

  • 此属性已包含在 Web 配置中,并且会引发相同的错误
  • 你是在服务端还是在客户端加入的?
猜你喜欢
  • 1970-01-01
  • 2013-11-11
  • 1970-01-01
  • 1970-01-01
  • 2013-11-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多