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