Error:已超过传入消息(65536)的最大消息大小配额
System.ServiceModel.CommunicationException: 已超过传入消息(65536)的最大消息大小配额。若要增加配额,请使用相应绑定元素上的 MaxReceivedMessageSize 属性。 —> System.ServiceModel.QuotaExceededException: 已超过传入消息(65536)的最大消息大小配额。若要增加配额,请使用相应绑定元素上的 MaxReceivedMessageSize 属性。
1
2
3
4
5
|
--- 内部异常堆栈跟踪的结尾 ---
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等属性值即可,代码设置如下:
1
2
3
4
5
|
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)设置如下代码:
1
2
3
4
5
6
7
8
9
10
11
|
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="ServerName"
maxBufferSize="2147483647"
maxBufferPoolSize="2147483647"
maxReceivedMessageSize="2147483647" />
</basicHttpBinding>
</bindings>
.........
</system.serviceModel>
|