2012-10-10 25 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)本地主机替换会发生什么?或者说在主机文件中解析为127.0.0.1的主机名? – wal

+1

127.0.0.1给出相同的结果。一个不同的主机名,但在hosts文件中指向127.0.0.1,可以根据需要为Fiddler提供流量。谢谢 ! – driis

+0

我将添加为答案 – wal

回答

6

编辑您的主机文件,位于

C:\ WINDOWS \ SYSTEM32 \ DRIVERS \等\主机

,并添加以下条目

127.0.0.1 mymachine.com

那么你的客户端指向mymachine.com而不是localhost

+2

谢谢,这是我的解决方案。这是可行的,因为.NET框架不会通过代理发送任何本地请求,而只是定义localhost的另一个名称。提琴手实际上记录了这一点 - 在这里:http://www.fiddler2.com/fiddler/help/hookup.asp#Q-LocalTraffic – driis

2

我会在这里回答我自己的问题 - 评论者@wal指出了我的问题:

这与ServiceStack无关,实际上请求通过http协议。问题是循环回本地主机没有通过提琴手发送流量。它实际上是在Fiddler2 FAQ page上解释的。

1

另一个诀窍是用你的机器名称替换你的“本地主机”uri,这应该与Fiddler一起使用。

http://machinename:port/test