2012-02-24 54 views
4

これは、RESTful Webサービスを数回処理した後、この種のエラーが発生したのは初めてです。私はエラーの原因を追跡することが難しいと思う、あなたが私を助けてくれることを願っています。Fiddler - ReadResponse failed:サーバーがこの要求に対して応答を返しませんでした

[Fiddler] ReadResponse() failed: The server did not return a response for this request. 

http://localhost:3445/Authenticate/Login?username=jsm&password=a&ip=1

enter image description here

フィドラー応答をGET:

私は、サービスを利用するためにシオマネキを使用し

[WebGet(UriTemplate = "Login?username={username}&password={password}&ip={ip}", ResponseFormat = WebMessageFormat.Json)] 

ログインサービスのために、この属性を持っています

enter image description here

[WebGet(UriTemplate = "Login?username={username}&password={password}&ip={ip}", ResponseFormat = WebMessageFormat.Xml)] 

それは私にこの結果を与える:それはによって引き起こされた場合、私はそれをXMLに変更しようとするので

enter image description here

は私がContent-type: application/json、わからないんだけど

ちょっと変わった。私は間違って何をしたのですか?私はjsonオブジェクトを返す必要があります..ありがとう!

+0

私はテスト用に使用するツールを変更する必要があると思います。この質問を読むことができたすべての人に、残りのテストのためにどのようなツールを提案できますか? POST、GET、PUTなどのプロトコルを使用できるツール。フィドラー以外のツール..?ありがとう – fiberOptics

+0

フィドラーは私にとってかなり良いです。上記の問題は 'ResponseFormat = WebMessageFormat.Json'では珍しくありません。私はフィドラーでRAWタブを見るのが好きです。 – peterept

+0

WebGet atrributeからResponseFormat属性を削除して、動作しているかどうか確認できますか。デフォルトはxmlですが、content-typeをapplication/jsonに指定した場合、WCF Rest Apiはクライアントが理解できる形式で応答するためにインテリジェントです – Rajesh

答えて

4

エラーの原因は、バンチデータタイプのロードです(上記のxmlデータのプレビューを参照してください)。 Jsonには約65Kのオブジェクトの制限があり、私のプロジェクトでは制限を超えています。したがって、最終的な解決策は、渡されるデータを最小限に抑えるDTO - 「データ転送オブジェクト」を作成することです。

+0

65kの番号はどこから来たのですか?私はJSONの最大のオブジェクトについて調べていますが、同じ問題にぶつかったので、それについての情報や、潜在的にどのように増加するかについての情報を見つけることができません(そして、私はすでにDTOを使い果たしました。各フィールドが6つのオブジェクト) – Stonz2

0

私は同じ問題を抱えていました。Fiddler] ReadResponse()failed:。私の解決策は次のとおりです。IISでは、アプリケーションが存在する場所でアプリケーションプールをリサイクルします。私はXAMPPを使用し、フィドラーを設置した

0

同じエラーが...

を発生した...私は一度だけのためのIISを実行します(それが原因XAMPPを実行しているに停止したよう)とすべてが細かい行ってきました。 :)

1

私は、異なる問題のために同じエラーのカップル時間がありました。主な理由は、wcf cantがオブジェクトをシリアライズすることです。

私の最初のケースでは、返されたオブジェクトがサービスで指定された正しいオブジェクトではないためです。サービスは生徒オブジェクトを返すはずでしたが、私はstudentExtendedオブジェクト(継承オブジェクト)を返していました。

2番目のケースでは、シリアル化できない(nullだった)形式のdateTimeプロパティが原因でした。私はそれが再び私は同じ問題に直面している

+1

私の答えは1年後に助けました:) – smoothumut

0

よろしくを働いていたので、後DateTime.nowにそれを変更しました。最後に、返品オブジェクトの契約タイプを定義する際の問題を発見しました。後述のように、私は[DataMemberを] [EnumMember]に取って代わった

[DataContract] 
public enum DiscountType 
{ 
    [EnumMember] 
    NONE = 0, 
    [EnumMember] 
    PERCENTAGE_DISCOUNT = 1 
} 

これは私の固定私の半日の努力をしたエラーを "[フィドラー] ReadResponse()が失敗しました"。

関連する問題