簡體   English   中英

app.config 中的 maxReceivedMessageSize 和 maxBufferSize

[英]maxReceivedMessageSize and maxBufferSize in app.config

如何在運行應用程序之前將 app.config 文件中的 maxReceivedMessageSize 和 maxBufferSize 參數增加到 2000000。

你需要做的是在你的約束力,但你需要做的客戶服務器。 就像是:

<system.serviceModel>
    <bindings>
        <basicHttpBinding>
            <binding maxBufferSize="64000000" maxReceivedMessageSize="64000000" />
        </basicHttpBinding>
    </bindings>
</system.serviceModel>

當前接受的答案是不正確的。 要求設置maxBufferSizemaxReceivedMessageSize的客戶端和服務器結合上。 這取決於!

如果你的請求太大(即服務操作的方法參數是內存密集型的)設置服務端的屬性,如果響應太大(即服務操作的方法返回值是內存密集型的)設置客戶端的值。

有關maxBufferSizemaxReceivedMessageSize之間的區別,請參閱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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM