3

約50個の要素の配列をWCFサービスメソッドに送信しようとしていますが、常に(404) Bad Requestエラーが発生します。

空の配列を送信すると機能するため、メッセージサイズなどに関係していると思います。

私はいくつかの調査を行い、WCFのweb.configにいくつかのものを追加しましたが、それでもこれを機能させることができません。

送信できるメッセージのサイズを大きくする方法について、誰か追加情報を教えてください。


[更新]解決策:

解決

4

3 に答える 3

2

愚かな、愚かな私:(

問題は、次のようにweb.configでバインディング構成を作成していたことです。

<bindings>
    <wsHttpBinding>
        <binding name="netTcpBindingConfig" closeTimeout="00:10:00" openTimeout="00:10:00" receiveTimeout="00:10:00" sendTimeout="00:10:00" transactionFlow="false" hostNameComparisonMode="StrongWildcard"  maxBufferPoolSize="524288" maxReceivedMessageSize="6000000">
            <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="6000000" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
        </binding>
    </wsHttpBinding>
</bindings>

しかし、そのとき私はエンドポイントに構成を適用していませんでした!したがって、これをエンドポイントタグに追加する必要がありました。

bindingConfiguration="netTcpBindingConfig"

今ではそれは魅力のように機能します。

于 2009-04-11T13:30:19.927 に答える
0

明らかなものですが、MaxReceivedMessageSizeを65536に設定して、それでも失敗するかどうかを確認してみましたか?

于 2009-04-11T13:06:38.190 に答える
0

サービスホストは、大量のデータセットを受信するように構成する必要があります。そうでない場合は、サービスレベルでドロップされます。

  • System.Runtime.Serializationへの参照を追加します。
  • バインディングを作成するときは、メッセージサイズを設定します。

    
    return new NetTcpBinding(SecurityMode.None, true)  
    {  
        MaxReceivedMessageSize = 99999999,  
        ReaderQuotas = { MaxArrayLength = 99999999 }  
    };
    
    
于 2009-04-11T13:06:55.537 に答える