blackcore

本质的东西,深植于骨骼,扎根于灵魂! 淘实惠,各类电子版书籍

导航

配置MaxReceivedMessageSize解决:System.ServiceModel.QuotaExceededException: 已超过传入消息(65536)的最大消息大小配额。

System.ServiceModel.CommunicationException: 已超过传入消息(65536)的最大消息大小配额。若要增加配额,请使用相应绑定元素上的 MaxReceivedMessageSize 属性。 ---> System.ServiceModel.QuotaExceededException: 已超过传入消息(65536)的最大消息大小配额。若要增加配额,请使用相应绑定元素上的 MaxReceivedMessageSize 属性。  

--- 内部异常堆栈跟踪的结尾 ---
Server stack trace:    在 System.ServiceModel.Channels.MessageEncoder.BufferMessageStream(Stream stream, BufferManager bufferManager, Int32 maxBufferSize)   在 System.ServiceModel.Channels.MessageEncoder.ReadMessage(Stream stream, BufferManager bufferManager, Int32 maxBufferSize, String contentType)   在 System.ServiceModel.Channels.HttpInput.ReadChunkedBufferedMessage(Stream inputStream)  

在 System.ServiceModel.Channels.HttpInput.ParseIncomingMessage(Exception& requestException)  在 System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout)   在 System.ServiceModel.Channels.RequestChannel.Request(Message message, TimeSpan timeout)   在 System.ServiceModel.Dispatcher.RequestChannelBinder.Request(Message message, TimeSpan timeout)   在 System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)   在 System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)   在 System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)

…………

解决办法:设置客户端的MaxReceivedMessageSize等属性值即可,代码设置如下:

ServiceClient service = new ServiceClient();

(service.Endpoint.Binding
as NetTcpBinding).MaxReceivedMessageSize = int.MaxValue;
(service.Endpoint.Binding
as NetTcpBinding).MaxBufferPoolSize = int.MaxValue;
(service.Endpoint.Binding
as NetTcpBinding).MaxBufferSize = int.MaxValue;

也可以在配置文件中(app.config/web.config)设置如下代码:



只要maxReceivedMessageSize大于返回的量即可。

posted on 2011-03-15 11:47  blackcore  阅读(24032)  评论(1编辑  收藏  举报