问题:
使用生成的装代码调用服务(使用PROXY调用服务没试过),当传输数据太大(如查询数据返回数据量太大)时,报:“已超过传入消息(65536)的最大消息大小配额。若要增加配额,请使用相应绑定元素上的 MaxReceivedMessageSize 属性。”错误。
解决方法:
将装代码下的 CreateDefaultBinding()方法(一般在装代码的倒数第二个方法):
原代码public static System.ServiceModel.Channels.Binding CreateDefaultBinding()
{
System.ServiceModel.Channels.CustomBinding binding = new System.ServiceModel.Channels.
CustomBinding();
binding.Elements.Add(new System.ServiceModel.Channels.TextMessageEncodingBindingElement
(System.ServiceModel.Channels.MessageVersion.Soap11, System.Text.Encoding.UTF8));
binding.Elements.Add(new System.ServiceModel.Channels.HttpTransportBindingElement());
return binding;
}
修改后的代码public static System.ServiceModel.Channels.Binding CreateDefaultBinding()
{
System.ServiceModel.Channels.CustomBinding binding = new System.ServiceModel.Channels.
CustomBinding();
binding.Elements.Add(new System.ServiceModel.Channels.TextMessageEncodingBindingElement
(System.ServiceModel.Channels.MessageVersion.Soap11, System.Text.Encoding.UTF8));
System.ServiceModel.Channels.HttpTransportBindingElement bindingA =
new System.ServiceModel.Channels.HttpTransportBindingElement();
bindingA.MaxReceivedMessageSize = 8192000;
binding.Elements.Add(bindingA);
return binding;
}
其中, "bindingA.MaxReceivedMessageSize = 8192000" 可以修改成你想要的传输数据量大小。