WCF服务消息大小错误

WCF服务消息大小错误,wcf,web,service,reference,Wcf,Web,Service,Reference,我有两个独立的模块(基于web的GUI和基于WCF的服务器),我使用WCF服务引用来访问从GUI到服务器的一些方法。当GUI向服务器请求数据并向GUI发送大量数据时会出现问题;引发最大消息大小错误异常! 我在Web.config文件中适当的节标记中增加了消息大小,它暂时起作用,但当数据(在我的情况下总是在增长)达到允许的最大大小时,错误再次发生!我知道瓶颈在你这边! 我如何解决这个问题?有没有办法使GUI服务引用来处理不断增长的数据? 这是我的GUI web.config文件: <pre&

我有两个独立的模块(基于web的GUI和基于WCF的服务器),我使用WCF服务引用来访问从GUI到服务器的一些方法。当GUI向服务器请求数据并向GUI发送大量数据时会出现问题;引发最大消息大小错误异常! 我在Web.config文件中适当的节标记中增加了消息大小,它暂时起作用,但当数据(在我的情况下总是在增长)达到允许的最大大小时,错误再次发生!我知道瓶颈在你这边! 我如何解决这个问题?有没有办法使GUI服务引用来处理不断增长的数据? 这是我的GUI web.config文件:

<pre>
</system.webServer>
<system.serviceModel>
    <bindings>
        <basicHttpBinding>
            <binding name="BasicHttpBinding_IServerHelper" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" maxBufferSize="16777216" maxBufferPoolSize="524288" maxReceivedMessageSize="16777216" messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true" >
                <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384"/>
                <security mode="None">
                    <transport clientCredentialType="None" proxyCredentialType="None" realm=""/>
                    <message clientCredentialType="UserName" algorithmSuite="Default"/>
                </security>
            </binding>
        </basicHttpBinding>
    </bindings>
    <client>
        <endpoint address="http://172.16.16.7:123456/ServerServices" binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IServerHelper" contract="ServiceReference1.IServerHelper" name="BasicHttpBinding_IServerHelper"/>
    </client>
</system.serviceModel>
</pre>


感谢您帮助我…

您可以将这些值设置为
int.MaxValue
。如果这还不足以回复邮件,您应该尝试拆分邮件。毕竟,这将是一个2GB的信息。也许SOAP不是传送这种野兽的最佳方式。

我如何分割我的消息?你有什么建议?(给出代码示例非常好!)@user2240957这在很大程度上取决于您的用例。特别是考虑到通过SOAP发送2GB不是一个好的开始方式。如果需要获得2GB数据,请考虑一种更适合该任务的方法。你的客户机有6GB内存吗?因为如果你在你的GUI中使用MVVM,并且从你的服务中获得2GB,那么这就是你所需要的。你说的是正确的nvoigt!我应该使用一个更合适的解决方案,但在当前场景中,是否可以最大化GUI上的接收数据容器大小?在web.config中有一些参数我不知道它们的好处(比如maxArrayLength…@user2240957您可以将它们全部设置为
int.MaxValue
或者在数字上是等效的,但是您有实际问题吗?如果您有错误消息,请发布它。