在使用 WCF 中,遇到如下問題:
已超過傳入消息(65536)的最大消息大小配額。若要增加配額,請使用相應綁定元素上的 MaxReceivedMessageSize 屬性。
問題說明:
客戶端調用 WCF 返回數據量大時,局域網沒有問題(客戶現場發現一台機器有問題,具體原因不詳。),發布到外網有問題。
VS2012 Debug 捕獲到的異常信息為:在 HTTP 通道上傳輸數據時發生錯誤(無法從傳輸連接中讀取數據: 連接已關閉)。
WCFStorm 工具返回的異常為:已超過傳入消息(65536)的最大消息大小配額。若要增加配額,請使用相應綁定元素上的 MaxReceivedMessageSize 屬性。
解決方案:
客戶端都加入:maxReceivedMessageSize="2147483647",如下設置:
<bindings> <basicHttpBinding> <!-- 設置 客戶端 提交數據,返回 “遠程服務器返回了意外相應:(413) Request Entity Too Large。” --> <binding name="LargeDataTransferServicesBinding" sendTimeout="00:10:00" maxReceivedMessageSize="2147483647" transferMode="Streamed" messageEncoding="Text" /> </basicHttpBinding> </bindings>
服務器端添加如下代碼解決問題:
<behavior> <!-- 解決問題:已超過傳入消息(65536)的最大消息大小配額。若要增加配額,請使用相應綁定元素上的 MaxReceivedMessageSize 屬性。 --> <dataContractSerializer maxItemsInObjectGraph="2147483647" /> </behavior>
