![](/img/trans.png)
[英]how to make no limit on maxBufferSize and maxReceivedMessageSize
[英]maxReceivedMessageSize and maxBufferSize in app.config
如何在運行應用程序之前將 app.config 文件中的 maxReceivedMessageSize 和 maxBufferSize 參數增加到 2000000。
你需要做的是在你的約束力,但你需要做的客戶端和服務器。 就像是:
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding maxBufferSize="64000000" maxReceivedMessageSize="64000000" />
</basicHttpBinding>
</bindings>
</system.serviceModel>
當前接受的答案是不正確的。 不要求設置maxBufferSize
和maxReceivedMessageSize
的客戶端和服務器結合上。 這取決於!
如果你的請求太大(即服務操作的方法參數是內存密集型的)設置服務端的屬性,如果響應太大(即服務操作的方法返回值是內存密集型的)設置客戶端的值。
有關maxBufferSize
和maxReceivedMessageSize
之間的區別,請參閱MaxBufferSize 屬性? .
你可以在你的 app.config 中做到這一點。 像那樣:
maxReceivedMessageSize="2147483647"
(最大值為Int32.MaxValue
)
或者在代碼中:
WSHttpBinding binding = new WSHttpBinding();
binding.Name = "MyBinding";
binding.MaxReceivedMessageSize = Int32.MaxValue;
筆記:
如果您的服務對世界開放,則在增加此值時請考慮安全性。
如果您使用自定義綁定,您可以設置如下值:
<customBinding>
<binding name="x">
<httpsTransport maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" />
</binding>
</customBinding>
簡單的解決方案:檢查它是否適合你..
轉到 web.config
查找客戶端使用的綁定。
改變為,
maxBufferSize="2147483647" maxReceivedMessageSize="2147483647"
完畢。
binding name="BindingName"
maxReceivedMessageSize="2097152"
maxBufferSize="2097152"
maxBufferPoolSize="2097152"
在客戶端和服務器端
在客戶端打開 app.config 並添加 maxBufferSize 和 maxReceivedMessageSize 屬性(如果不可用)
原來的
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="Service1Soap"/>
</basicHttpBinding>
</bindings>
編輯/更新后
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="Service1Soap" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647"/>
</basicHttpBinding>
</bindings>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.