2011-09-23 17 views
2

私は、適度に大きなオブジェクトをWCFサービスに送信するユニットテストを行っています。そのパラメータにnullを渡すと、すべて正常に動作します。人口が多いオブジェクトを送信すると、HTTP 400の応答が返されます。WCFに大きなオブジェクトを送信すると400の不正要求が発生する

<basicHttpBinding> 
    <binding name="BasicHttpBinding_IMyAppService" closeTimeout="00:01:00" 
     openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" 
     allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" 
     maxBufferSize="200000000" maxBufferPoolSize="200000000" maxReceivedMessageSize="200000000" 
     messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" 
     useDefaultWebProxy="true"> 
     <readerQuotas maxDepth="32" maxArrayLength="200000000" maxStringContentLength="200000000"/> 
     <security mode="None"> 
      <transport clientCredentialType="None" proxyCredentialType="None" 
       realm="" /> 
      <message clientCredentialType="UserName" algorithmSuite="Default" /> 
     </security> 
    </binding> 
</basicHttpBinding> 

を私は何をしないのです:次のように私はユニットテストプロジェクトのapp.configをでサイズの設定パラメータをアップクランクている、しかし

The maximum message size quota for incoming messages (65536) has been exceeded.

WCFのトレースは、このエラーを示しますエラーメッセージに表示されている65536を超えて許可されたメッセージサイズを引き上げる設定ですか?

UPDATE:Webサービスホストの

web.configファイルは、(私が思う)大きな値にmaxReceivedMessageSizeを設定します。

<binding name="basicHttpBindingConfig" maxReceivedMessageSize="20000000" maxBufferSize="20000000" maxBufferPoolSize="20000000"> 
    <readerQuotas maxDepth="32" maxArrayLength="200000000" maxStringContentLength="200000000"/> 
    <security mode="TransportCredentialOnly"> 
    <transport clientCredentialType="Ntlm"/> 
    </security> 
</binding> 

答えて

1

私が正しくあなたの質問を理解していれば、あなたは増加しました単体テストのapp.configの 'maxReceivedMessageSize'のサイズ。実際には、ユニットテストコードから呼び出すWebサービスのapp.config/web.configにこの変更を加える必要があります。 IISでWebサービスをホストする場合は、web.configになります。 Windowsサービスでホストする場合は、app.configファイルを変更する必要があります(binフォルダ内の.exe.configファイルに移動します)

+0

申し訳ありませんが、私は元の質問また、Webサービスのweb.configにmaxReceivedMessageSizeを設定しました。特定の設定で質問が更新されました。そこに問題がありますか? –

+0

Webサービスのホストはどこですか?Windowsサービスでホストされている場合は、appnameを確認してください。 – KrishHari

+0

現時点では、VS 2010のウェブサイトプロジェクトでホストされています。そのプロジェクト用のweb.configがあります(ここではappnameはアプリケーション名です)。 (関連する部分は現在質問に掲載されています) –

関連する問題