当前位置: 移动技术网 > IT编程>开发语言>.net > 我发现C# 请求 Web services 的Bug,求帮助?

我发现C# 请求 Web services 的Bug,求帮助?

2019年04月23日  | 移动技术网IT编程  | 我要评论

mc乐刚,编程入门网,张柏芝低胸装亮相

我就不说这个bug让我调试了多久,怎么坑的。。直接说结果。

服务器上有两个接口,一个是web services(asmx文件)接口,一个是mvc api (普通的get请求接口)

神奇的事情是这样的,我循环请求两个接口的时候(不要问我为啥这样写),在第三次web services 超时。。

for()
{

使用 webrequest get mvc 接口

在使用 webservice1soapclient 调用 web services 接口 (这里第三次调用超时)

}

就是第三次,神奇的第三次,每次循环都是第三次失败。并且怎么也修复不好,就算重新new 一个web services对象都不行。只能重启程序才能再次连接服务器)

排查

当我准备抓包的时候,发现只要打开 fiddler 就好了,因为fidder 是代理http请求,fidder会自己重新和服务器建立tcp连接

猜想

webrequest 和 webservice1soapclient 请求的是同一台服务器,
会复用?tcp连接。。
然后webrequest 用完连接后关掉?
webservice1soapclient 一直使用挂起的哪个连接???
导致超时? 而且再怎么new 个新对象都超时?

注意

https://github.com/zifeiniu/testbugwebservices

代码已经提取出来写了一个单独的demo
主要,服务端要单独部署到一台机器上,不要再本机实验。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网