【问题标题】:Message size quota exceeded on WCF netTcpBinding in remote machine远程计算机中的 WCF netTcpBinding 超出消息大小配额
【发布时间】:2019-08-15 14:59:52
【问题描述】:

总是出现异常“已超出远程通道的传入消息的最大消息大小配额。有关更多详细信息,请参阅服务器日志”,在 .net c# wcf windows 应用程序开发中。

DataTable 中大约 72kb 大小的数据我能够成功地发送远程计算机托管 WCF 在 Windows 服务中。但在抛出异常“已超出远程通道的传入消息的最大消息大小配额。有关更多详细信息,请参阅服务器日志”。

已经在两端设置了数据大小管理。 客户端App.config:

<bindings>
<netTcpBinding>
<binding name="NetTcpBinding_IProjectService" 
maxBufferSize="2147483647" maxBufferPoolSize="524288"
maxReceivedMessageSize="2147483647">          
<readerQuotas maxStringContentLength="2147483647"/>          
</binding>
</netTcpBinding>
</bindings>

远程服务器端App.config:

<netTcpBinding>
<binding name="NetTcpBinding_IProjectService" maxBufferSize="2097152" 
maxBufferPoolSize="2097152"maxReceivedMessageSize="2097152">
<readerQuotas maxStringContentLength="2097152" />
</binding>
</netTcpBinding>

还尝试了相同的尺寸,即“2147483647”两端,但总是有相同的例外。

【问题讨论】:

  • "message size...exceeded" 从事件报告的角度来看,是关于 SO 的 WCF 问题的“NullReferenceException”。你先搜索了吗?
  • WCF - How to Increase Message Size Quota 的可能重复项。只需在适当的地方将 http 绑定更改为 Tcp

标签: wcf nettcpbinding


【解决方案1】:

请考虑以下配置。

    <bindings>
      <netHttpBinding>
        <binding name="mybinding" maxBufferPoolSize="2147483647" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647">
          <readerQuotas maxArrayLength="2147483647" maxStringContentLength="2147483647"/>          
        </binding>
      </netHttpBinding>
</bindings>

此外,请使用 BindingConfiguration 名称应用服务端点中的配置。

<services>
      <service name="sv">
        <endpoint bindingConfiguration="mybinding" address="" binding="netTcpBinding" contract="isv" ></endpoint>
      </service>
</services>

请在服务端和客户端应用配置。
如果问题仍然存在,请随时告诉我。

【讨论】:

  • 亚伯拉罕!仅在我的服务端点条目中缺少“bindingConfiguration="mybinding"" 位,这使得整个故事发生了根本性的变化。我之前能够从 DataSet 发布最大 72KB 的数据。刚才,我成功将 5MB 的数据集数据发布到远程 WCF 服务。上帝保佑你亚伯拉罕。我的假期现在会很平静。
猜你喜欢
  • 2013-11-03
  • 1970-01-01
  • 2010-12-15
  • 2014-10-23
  • 1970-01-01
  • 2014-02-01
  • 2020-03-18
  • 1970-01-01
  • 2010-12-07
相关资源
最近更新 更多