2013-02-21 52 views

回答

50

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

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

謝謝@ mattytommo,這是我想要的。 – 2013-02-21 12:47:21

+0

謝謝!它也適用於我。即使我僅爲客戶端提供此更改,它也能正常工作。 – Sergey 2014-09-24 11:04:56

+0

完美,你爲我節省了很多時間:) ++ 1 – 2014-10-09 19:29:23

11

你可以在你的app.config中做到這一點。這樣的:

maxReceivedMessageSize="2147483647" 

(最大值爲Int32.MaxValue

或者在代碼:

WSHttpBinding binding = new WSHttpBinding(); 
binding.Name = "MyBinding"; 
binding.MaxReceivedMessageSize = Int32.MaxValue; 

注:

如果您的服務是開放的廣闊天地,在增加此值時考慮安全性。

0

簡單的解決辦法:檢查它是否適合你..

轉到web.config中

查找綁定使用的客戶端。

變化,

MAXBUFFERSIZE = 「2147483647」 maxReceivedMessageSize = 「2147483647」

完成。

0

綁定名稱= 「BindingName」 maxReceivedMessageSize = 「2097152」 MAXBUFFERSIZE = 「2097152」 maxBufferPoolSize = 「2097152」

在客戶端和服務器端

7

目前公認的答案是不正確。它是不是需要在客戶端和服務器綁定上設置maxBufferSizemaxReceivedMessageSize。這取決於!

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

對於maxBufferSizemaxReceivedMessageSize之間的差異,請參見MaxBufferSize property?

0

如果您使用的是自定義綁定,您可以設置的值是這樣的:

<customBinding> 
    <binding name="x"> 
     <httpsTransport maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" /> 
    </binding> 
</customBinding> 
0

打開的應用程序。配置在客戶端,並添加MAXBUFFERSIZE和maxReceivedMessageSize屬性,如果沒有可用的

原始

<system.serviceModel> 
    <bindings> 
     <basicHttpBinding> 
     <binding name="Service1Soap"/> 
     </basicHttpBinding> 
    </bindings> 

後編輯/更新

<system.serviceModel> 
    <bindings> 
     <basicHttpBinding> 
     <binding name="Service1Soap" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647"/> 
     </basicHttpBinding> 
    </bindings>