【发布时间】:2018-03-08 12:58:31
【问题描述】:
我正在使用 F# 和带有此代码的 WsdlTypeProvider:
type svc = FSharp.Data.TypeProviders.WsdlService<"http://my.service.url?wsdl">
let svcClient = svc.GetServicePort()
在大多数情况下,它在客户端调用某些方法时效果很好。但在某些情况下,我会收到以下消息:
已超出传入邮件的最大邮件大小配额 (65536)。要增加配额,请在适当的绑定元素上使用 MaxReceivedMessageSize 属性。
除非绑定上没有这样的属性。可以使用以下方式访问绑定:
let binding = svcClient.DataContext.Endpoint.Binding
将绑定转换为具有该属性的 BasicHttpBinding 也不起作用,因为显然绑定与继承无关:
let binding = svcClient.DataContext.Endpoint.Binding :?> System.ServiceModel.BasicHttpBinding
它会导致这个错误:
无法转换类型的对象 'System.ServiceModel.Channels.CustomBinding' 键入 'System.ServiceModel.BasicHttpBinding'。
所以问题是: 如何在使用 WsdlTypeProvider 时增加 MaxReceivedMessageSize?
我的 App.Config 中似乎没有任何设置,就像我通过生成代理等以常规方式附加到服务一样。
【问题讨论】:
标签: web-services wcf f# f#-data