Web services F#WsdlTypeProvider MaxReceivedMessageSize

Web services F#WsdlTypeProvider MaxReceivedMessageSize,web-services,wcf,f#,f#-data,Web Services,Wcf,F#,F# Data,我使用F#和WsdlTypeProvider来实现以下代码: type svc = FSharp.Data.TypeProviders.WsdlService<"http://my.service.url?wsdl"> let svcClient = svc.GetServicePort() 将绑定强制转换为具有属性的BasicHttpBinding也不起作用,因为显然绑定与继承无关: let binding = svcClient.DataContext.Endpoint.Bin

我使用F#和WsdlTypeProvider来实现以下代码:

type svc = FSharp.Data.TypeProviders.WsdlService<"http://my.service.url?wsdl">
let svcClient = svc.GetServicePort()
将绑定强制转换为具有属性的BasicHttpBinding也不起作用,因为显然绑定与继承无关:

let binding = svcClient.DataContext.Endpoint.Binding :?> System.ServiceModel.BasicHttpBinding
它会导致这个错误:

无法强制转换类型为的对象 “System.ServiceModel.Channel.CustomBinding”到类型 “System.ServiceModel.BasicHttpBinding”

因此,问题是: 如何在使用WsdlTypeProvider时增加MaxReceivedMessageSize


我的App.Config中似乎没有任何设置,就像我以常规方式连接到服务时一样,通过生成代理等。

如果您编写此代码是出于测试目的,那么可以使用BasicHttp绑定,但为了支持会话,并且出于安全原因,您不应该将BasicHttp用于应用程序的商业用途。选择netTcp或WsHttp绑定。以下代码适用于netTcp绑定

<bindings>
 <customBinding>
 <binding name="CustomBinding_MyService">
      <binaryMessageEncoding>
        <readerQuotas maxDepth="32" maxStringContentLength="200000000" maxArrayLength="200000000"/>
      </binaryMessageEncoding> 
      <tcpTransport maxBufferPoolSize="200000000" maxReceivedMessageSize="200000000" maxBufferSize="200000000">
        <extendedProtectionPolicy policyEnforcement="Never"/>
      </tcpTransport>

    </binding>
</customBinding>
</bindings>


希望这有帮助

您好,因为我使用的是TypeProvider,所以我看不出我对服务的连接方式有多大的控制权。此外,我无法控制该服务(可以说,它不在我的管辖范围内)。所以我不知道如何使用你的答案。你看过这个吗?
<bindings>
 <customBinding>
 <binding name="CustomBinding_MyService">
      <binaryMessageEncoding>
        <readerQuotas maxDepth="32" maxStringContentLength="200000000" maxArrayLength="200000000"/>
      </binaryMessageEncoding> 
      <tcpTransport maxBufferPoolSize="200000000" maxReceivedMessageSize="200000000" maxBufferSize="200000000">
        <extendedProtectionPolicy policyEnforcement="Never"/>
      </tcpTransport>

    </binding>
</customBinding>
</bindings>