2011-08-29 100 views
9

WCFサービスに対して次の設定があります。受信メッセージ(65536)の最大メッセージサイズクォータが超過しました

私はmaxReceivedMessageSizeが増加しているにもかかわらず、サービスはまだエラーがスローされます。

The maximum message size quota for incoming messages (65536) has been exceeded. To increase the quota, use the MaxReceivedMessageSize property on the appropriate binding element.`" exception.

は、これはどのように解決することができますか?

<system.serviceModel> 
    <services> 
     <service name="MyService" behaviorConfiguration="MyServiceTypeBehaviors"> 
     <endpoint address="http://localhost:22230/MyService.svc" 
       binding="basicHttpBinding" 
       bindingConfiguration="MyServiceBinding" 
       contract="IMyService" /> 

     <endpoint contract="IMetadataExchange" binding="mexHttpBinding" address="mex" /> 
     </service> 
    </services> 

    <behaviors> 
     <serviceBehaviors> 
     <behavior name="MyServiceTypeBehaviors" > 
      <serviceMetadata httpGetEnabled="true" /> 
     </behavior> 
     </serviceBehaviors> 
    </behaviors> 

    <bindings> 
     <basicHttpBinding> 
     <binding name="MyServiceBinding" 
       hostNameComparisonMode="StrongWildcard" 
       receiveTimeout="00:10:00" 
       sendTimeout="00:10:00" 
       openTimeout="00:10:00" 
       closeTimeout="00:10:00" 
       maxReceivedMessageSize="6553600" 
       maxBufferSize="6553600" 
       maxBufferPoolSize="524288" 
       transferMode="Buffered" 
       messageEncoding="Text" 
       textEncoding="utf-8" 
       bypassProxyOnLocal="false" 
       useDefaultWebProxy="true" > 
      <security mode="None" /> 
     </binding> 
     </basicHttpBinding> 
    </bindings> 
    </system.serviceModel 
+0

をコピーしてください。 – ChaosPandion

+0

あなたはこれが正しいと言いますが、うまくいくはずですか?私のクライアントは現在WCFTestClientです。 – DarthVader

+0

[このスレッド](http://social.msdn.microsoft.com/forums/en-US/wcf/thread/f1ad96bf-c5a0-4e6f-a357-0957d32cf2e5)にはいくつかのアイデアがありますが、その中にはいくつかのものがあります適用しないでください(たとえば、maxBufferSizeを既に増やしているなど)が、もっと詳しく調べる価値があります。 – ewall

答えて

15

これがサービス設定の場合は、クライアントの設定を調べて、maxReceivedMessageSizeとサーバーのメッセージサイズを一致させる必要があります。メッセージはクライアントから送信されています。

+0

私のクライアントは現在WCFTestClientです。 – DarthVader

+2

その後、WCFTestClientの設定を変更する必要があります(ツールとオプションに移動する)か、WCFTestClientに送るデータを少なくしてください。 – Peter

+2

wcfテストクライアント(私の場合はFW 4.0)の設定を変更するには 左のファイルツリーの中の最も低いファイルを右クリックしてください。 「Edit with SvcConfigEditor」を選択し、バインドを選択します。内部のバインディング要素には、ここにマークされた3人のフェローが見つかります。 は2MBに設定されています。 http://i.imgur.com/eBdguoy.png – arik

4

クライアントの設定で最大メッセージサイズを大きくする必要があります。デフォルトは65536で、必要に応じて倍増します。

あなたがプログラムであなたのエンドポイントを設定している場合は、次のコードスニペットは助けることがあります。

BasicHttpBinding binding = new BasicHttpBinding() { MaxReceivedMessageSize = 131072 }; 

サービス・クライアントをインスタンス化する際に続いて、コンストラクタにこの結合オブジェクトに渡します。たとえば:

MyServiceClient client = new MyServiceClient(binding, "http://www.mysite.com/MyService/"); 
0

は、あなたが私の理論は、あなたのクライアントの設定が正しく設定されていないことである新しいApp.configを

関連する問題