首页 新闻 会员 周边

关于timeout

0
悬赏园豆:10 [已解决问题] 解决于 2013-06-26 10:52

我们在Call service的时候,有没有办法区分timeout是connect时导致的还是service端反应缓慢导致的呢?
另外我用的是异步方式(ThreadPool.RegisterWaitForSingleObject方法来监控是否timeout)去call service的,似乎更加难以区分。

Müller的主页 Müller | 初学一级 | 园豆:122
提问于:2012-12-19 14:43
< >
分享
最佳答案
0

不知道你用的啥 service。

而且我理解你所谓的 service 端反应缓慢因该是指的 received timeout.

在 socket 中,有五种 timeout:

dns lookup timeout  // 将域名解析成 IP 的超时,这里面会包含下面四种 timeout

connect timeout   // 连接超时

send timeout  // 发送超时   

receive timeout // 接收超时

close timeout  // 关闭连接超时

 

收获园豆:10
Launcher | 高人七级 |园豆:45045 | 2012-12-19 14:59

谢谢
我先描述下场景。
我们调用客户提供的service,向他们发送request,他们收到后做相应处理,返回response给我们。
我想除了网络相关的ConnectTimeout外,就是他们那端的响应时间了,应该算是ResponseTimeout吧。
另外还有WriteTimeout和ReadTimeout.

Müller | 园豆:122 (初学一级) | 2012-12-19 15:55

@Müller: 我综合了你的所有文字,勉强猜出你的意思,不知道对不对,你使用的 HTTP 协议,你想知道服务器收到请求后到服务器开始响应这之间花费的时间,是吗?

如果是的话,你可以打开 Fiddler,通过抓取的包,你可以看到Fiddler能统计出一些时间,可以通过 ServerBeginResponse - ServerGotRequest 来大致计算出你的 ResponseTimeout。

Launcher | 园豆:45045 (高人七级) | 2012-12-19 16:05

@Müller: try

catch finally 一下看看能不能追到这种timeout的异常

chenping2008 | 园豆:9836 (大侠五级) | 2012-12-20 09:50

@chenping2008: 你得告诉我你的客户端是用什么技术实现的。

Launcher | 园豆:45045 (高人七级) | 2012-12-20 09:54
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册