Dot-Net

WCF - 如何增加消息大小配額

  • May 19, 2009

我有一個 WCF 服務,它從數據庫向客戶端返回 1000 條記錄。我有一個 ASP.NET WCF 客戶端(我在 asp.net Web 應用程序項目中添加了服務引用以使用 WCF)。

執行客戶端應用程序時收到以下消息:

已超出傳入郵件 (65536) 的最大郵件大小配額。要增加配額,請在適當的綁定元素上使用 MaxReceivedMessageSize 屬性。

有什麼幫助嗎?如何增加郵件大小配額?

在App.configWeb.config文件中,您需要這樣的東西來增加消息大小配額:

<bindings>
   <basicHttpBinding>
       <binding name="basicHttp" allowCookies="true"
                maxReceivedMessageSize="20000000" 
                maxBufferSize="20000000"
                maxBufferPoolSize="20000000">
           <readerQuotas maxDepth="32" 
                maxArrayLength="200000000"
                maxStringContentLength="200000000"/>
       </binding>
   </basicHttpBinding>
</bindings>

並在您的端點配置中使用綁定名稱,例如

...
bindingConfiguration="basicHttp"
...

這些值的理由很簡單,它們足夠大以容納大多數消息。您可以調整該數字以滿足您的需求。低預設值基本上是為了防止 DOS 類型的攻擊。將其設置為 20000000 將允許分佈式 DOS 攻擊有效,預設大小 64k 將需要大量客戶端來壓倒大多數伺服器。

引用自:https://stackoverflow.com/questions/884235