vb.net - WCF 服务错误“已超出传入消息的最大消息大小配额”
问题描述
我有一个 WCF 服务库项目,它从数据库中请求一个大型记录集并返回它。每次在 WCF 测试客户端中都会弹出此错误。我将 MaxReceivedMessageSize 更改为一个很大的值,但它似乎没有接受它。这里是 Web.Config
<client>
<endpoint address="http://localhost:8000/SAPIntranet" binding="basicHttpBinding"
bindingConfiguration="Binding_SAPIntranet" contract="SAPIntranet"
name="SAPIntranet" kind="" endpointConfiguration="" />
</client>
<bindings>
<basicHttpBinding>
<binding name="Binding_SAPIntranet" openTimeout="00:02:00" maxBufferPoolSize="20000000"
maxBufferSize="20000000" maxReceivedMessageSize="20000000">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
</binding>
</basicHttpBinding>
</bindings>
错误消息始终提供默认值 (65535)。我想我做错了什么,但无法弄清楚。
感谢您的时间和帮助
解决方案
MaxReceivedMessageSize
设置在服务器端生效,我们应该在服务端点上应用绑定配置。上述配置仅适用于客户端服务端点。请参考以下服务配置。
<services>
<service name="WcfService1.Service1">
<endpoint address="" binding="basicHttpBinding" bindingConfiguration="mybinding" contract="WcfService1.IService1">
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"></endpoint>
</service>
</services>
<bindings>
<basicHttpBinding>
<binding name="mybinding" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647">
<readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647"
maxArrayLength="2147483647" maxBytesPerRead="2147483647" />
</binding>
</basicHttpBinding>
</bindings>
如果有什么我可以帮忙的,请随时告诉我。
推荐阅读
- azure-devops - 查询磁贴小部件的问题
- listview - Titanium listView 标记没有 listItemIndex 属性?
- machine-learning - 如何编码具有可变长度的分类数据,以便在 PyTorch 中提取到 nn.Embedding
- php - 如果元素是连续的,如何从 DOM 中删除元素
- javascript - 完整日历上的多个事件选择
- vba - 以连续形式突出显示字段背景
- c# - 即使没有实现循环,如何解决循环问题?
- html - CSS 动画完成后设置新的最终状态
- javascript - 如何将视频的当前时间作为事件来运行&
- powershell - Invoke-Expression 无法执行多行函数