2011-07-07 6 views
0

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

<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> 

私はここで何が欠けていますか?他のすべては素晴らしい作品です。私はtext/xml形式のリクエストをサービスに提出し、それ以外のものはすべてbase64文字列で作業していない限り200を返します。私はwcfのメッセージサイズについて百万もの他の投稿があることを知っていますが、私は誰かが私のことをすばやく見ていただければ幸いです。

ここでは、私が処理するwcfサービスを取得しようとしているサンプルリクエストに対するlinkです。

私は誰でも考えていただければ幸いです。

答えて

0

サーバーサイドでトレースを有効にして、サーバーが要求を拒否する原因を確認してください。あなたのサービスのための<endpoint>要素が値を持つbindingConfiguration属性を持つ

  • 「httpBinding」
  • あなたのサービスのための<service>要素完全修飾名にのと一致するname属性:ということも、二重のチェックサービスクラス(つまり、.svcファイルで使用する名前空間と本質的に同じ値)を使用します。
+0

回答ありがとうございます。私は、サービスに来るリクエストを管理するルートを使用しています.svcファイルはありません。私はトレースを有効にして、私が何を考え出すかを見てみましょう。 – jdb1a1

+0

トレースを有効にしました。「受信メッセージ(65536)の最大メッセージサイズのクォータが超過しました。」私にとっては、これはweb.configで最大のサイズの編集を取り上げていないことを意味します。 wcf 4 restテンプレートのweb.configの外観はどうでしょうか? – jdb1a1

+0

ルートを使用している場合は、WebServiceHostFactoryで作成されたデフォルトのバインディングを使用しています(ルートとRESTを使用しているため)。デフォルトのバインディングの設定を変更するには、web.configからname属性を削除するだけです: carlosfigueira

関連する問題