2012-10-10 6 views
6

このServiceStackクライアントコードは動作します:ServiceStack JsonServiceClient、ローカルホストのワイヤでトラフィックを強制しますか?

var client = new JsonServiceClient("http://localhost:32949/test"); 
var request = new MyRequest { ClassificationId = new ClassificationId (21300) }; 
var response = client.Post(request); 

フィドラーのトラフィックを観測するときしかし、私は何も表示されません。私は書く必要がある他のクライアントのために必要なJSONリクエストをどのように構築するかについて、より良い考えを得るためにトラフィックを観察したいと思います。

上記のコードを動作させるには、サービスを持つアセンブリを参照する必要があり、ServiceStackがHTTP要求の送信を避けるために巧妙な呼び出しを行っていると思われます。これは本当ですか?

なぜFiddlerでトラフィックが発生しないのですか。どのように強制しますか?

ブラウザ経由のローカルホストエンドポイントへのHTTPトラフィックが正しく表示されます。

+0

あなたのIPアドレス(LAN)でlocalhostと置き換えるとどうなりますか?ホストファイルで127.0.0.1に解決されるホスト名を指定しますか? – wal

+1

127.0.0.1と同じ結果が得られます。別のホスト名がhostsファイルの127.0.0.1を指しているので、Fiddlerのトラフィックは必要に応じて私に与えられます。ありがとう! – driis

+0

私は答えとして追加します – wal

答えて

6

編集hostsファイル、

Cに位置:\ WINDOWS \ System32 \ Drivers \ Etc \ Hostsに

次のエントリ

を追加127.0.0.1 mymachine.com

localhost

の代わりにクライアントを mymachine.comに設定してください
+2

ありがとう、これは私が行った解決策でした。これは、.NETフレームワークがプロキシ経由でローカルリクエストを送信しないが、localhostの別の名前を定義するだけで動作するためです。 Fiddlerはこれを実際に文書化しています - ここ:http://www.fiddler2.com/fiddler/help/hookup.asp#Q-LocalTraffic – driis

2

ここに私自身の質問に答えるでしょう - コメント者@walは私に問題を指摘しました:

これはServiceStackとは何の関係もなく、リクエストは実際にhttpプロトコルを経由します。問題はローカルホストにループバックして、フィドラー経由でトラフィックを送信しなかったことです。実際にはFiddler2 FAQ pageで説明されています。

1

もう一つのトリックは、 "localhost" URIをあなたのマシン名に置き換えることです。これはFiddlerでそのまま使えるはずです。関心のうち

http://machinename:port/test

関連する問題