当我在 C# 中使用 WSDL 服务时,我可以将两个参数传递给构造函数;BasicHttpBinding 和 EndpointAddress
BasicHttpBinding basicHttpBinding = new BasicHttpBinding { MaxReceivedMessageSize = 20000000, MaxBufferSize = 20000000 };
EndpointAddress endpointAddress = new EndpointAddress(delarsListUrl);
var ds = new DealersService.DealersServiceClient(basicHttpBinding,endpointAddress);
当我在 F# 中使用 WSDL 类型提供程序时,我只允许在没有任何参数或使用 BasicHttpBinding 类型的一个参数的情况下调用构造函数。那么如何设置 MaxReceivedMessageSize 或 MaxBufferSize 等参数呢?
编辑:
如果我把它放到 Azure Worker 角色的 app.config
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="basicHttp" allowCookies="true"
maxReceivedMessageSize="20000000"
maxBufferSize="20000000"
maxBufferPoolSize="20000000">
<readerQuotas maxDepth="32"
maxArrayLength="200000000"
maxStringContentLength="200000000"/>
</binding>
</basicHttpBinding>
</bindings>
</system.serviceModel>
它没有帮助,我仍然得到 maxReceivedMessageSize 只有 64k 的异常,我应该更改它。我在 C# 中遇到了同样的问题,app.config 设置似乎被忽略了,所以我通过将带有这些设置的 BasicHttpBinding 传递给构造函数来解决它。