0

Microsoft が提供する wcf 4 REST テンプレートを使用して、長い (約 155000 文字) base64 文字列を WCF REST サービスに送信しようとしています。クライアント アプリケーションまたはフィドラーから post メソッドを使用して XML を送信しようとすると、要求に応じて HTTP ステータス コード 400 が返されます。さまざまなブログ投稿やその他のスタックオーバーフロー投稿からまとめた、適切な web.config 設定があります。

   <bindings>
      <webHttpBinding>
        <binding name="httpBinding" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647" transferMode="Streamed"  openTimeout="00:25:00" closeTimeout="00:25:00" sendTimeout="00:25:00" receiveTimeout="00:25:00">
          <readerQuotas maxDepth="64"
                 maxStringContentLength="2147483647"
                 maxArrayLength="2147483647"
                 maxBytesPerRead="2147483647"
                 maxNameTableCharCount="2147483647"/>
        </binding>
      </webHttpBinding>
    </bindings>  

ここで何が欠けていますか?他のすべてはうまく機能します。base64 文字列を使用していない限り、text/xml 形式のリクエストをサービスに送信すると、それ以外はすべて 200 が返されます。wcf のメッセージ サイズに関する投稿が他にも無数にあることは承知していますが、誰かが私の記事をざっと見ていただければ幸いです。

これは、wcf サービスに処理させようとしているサンプル リクエストへのリンクです。

どなたでもご意見いただければ幸いです。

4

1 に答える 1

0

サーバー側でトレースを有効にして、サーバーが要求を拒否する原因を確認してください。また、次のことを再確認してください。

  • サービスの<endpoint>要素には、bindingConfiguration値が「httpBinding」の属性があります
  • サービスの<service>要素は、サービス クラスの完全修飾名nameに一致する属性です(つまり、名前空間では、基本的に .svc ファイルで使用する値と同じです)。
于 2011-07-07T22:21:05.077 に答える