编程语言
首页 > 编程语言> > c# – 如何设置.NET客户端Web服务ClientRuntime.MaxFaultSize

c# – 如何设置.NET客户端Web服务ClientRuntime.MaxFaultSize

作者:互联网

我正在调用一个java webservice,它返回一个包含错误列表的FaultException类型.因此响应消息大小总是很大.

在我的c#(clr3.5)客户端中,我收到以下错误

“已超出传入邮件的最大邮件大小限额(65536).要增加配额,请在相应的绑定元素上使用MaxReceivedMessageSize属性.”

我相信解决这个问题的方法是设置ClientRuntime.MaxFaultSize msdn-doc

有没有办法在app.config中执行此操作?

解决方法:

您必须设置ClientRuntime.MaxFaultSize属性,see here

>创建您的MaxFaultSizeBehaviour


public class MaxFaultSizeBehavior : IEndpointBehavior
{
 private int _size;

 public MaxFaultSizeBehavior(int size)
 {
  _size = size;
 }

 public void AddBindingParameters(ServiceEndpoint endpoint, BindingParameterCollection bindingParameters)
 {
 }

 public void ApplyClientBehavior(ServiceEndpoint endpoint, ClientRuntime clientRuntime)
 {
  clientRuntime.MaxFaultSize = _size;
 }

 public void ApplyDispatchBehavior(ServiceEndpoint endpoint, EndpointDispatcher endpointDispatcher)
 {
 }

 public void Validate(ServiceEndpoint endpoint)
 {
 }
}

>在客户端大小应用创建的行为:

a)到ChannelFactory:


ChannelFactory channelFactory = new ChannelFactory(binding, endPointAddress);
channelFactory.Endpoint.Behaviors.Add(new MaxFaultSizeBehavior(500000));

b)或生成代理:


proxy.Endpoint.Behaviors.Add(new SetMaxFaultSizeBehavior(500000));

标签:c,wcf,wcf-client
来源: https://codeday.me/bug/20190606/1189648.html