我的iOS应用程序对我的WCF Web服务进行Rest调用。
响应速度非常慢,超过3分钟。
但是,当我将Fiddler设置为代理以监控iOS流量时。电话会议在1秒内完成。
让Fiddler神奇地加速来自iOS的Rest调用是什么?
P.S。 Fiddler是在Windows PC上安装的,与iOS App使用相同的网络。
其余的电话示例(来自Fiddler)
请求
GET https://xxxx.xxxx.com/Deals HTTP/1.1
Host: xxx.xxxx.com
Proxy-Connection: keep-alive
Accept-Encoding: gzip
Content-Type: application/json
Cookie: ASPXAUTH=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Connection: keep-alive
User-Agent: Natural xxxx x.x.x (iPad; iPhone OS 7.0.2; en_US)
响应
HTTP/1.1 200 OK
Cache-Control: private
Content-Length: 891437
Content-Type: application/json; charset=utf-8
Server: Microsoft-IIS/7.5
LastFetchDateTimeUTC: 2014-02-14T16:52:43.5465273Z
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Fri, 14 Feb 2014 16:52:45 GMT
响应体是一个大型的json(2MB)
P.S。
除了Fiddler之外,我们还尝试安装wireshark并在模拟器上运行应用程序时使用它来捕获mac上的流量。 我们看到很多DUP ACK,我猜这会导致tcp重新传输
P.S。
我们也在iOS上发布,WCF网络服务没有延迟。
帮助!
更新:
我们发现了一个问题,看起来响应时间随着身体的长度而减少。这有什么意义吗?
答案 0 :(得分:1)
WireShark日志应该为您提供有关每种情况下发生情况的大量信息。当Fiddler“神奇地”使事情变得更快时,通常是由于:
我在this blog post中写了一些关于这些的内容。
答案 1 :(得分:0)
我们通过证明服务器是一个糟糕的服务器来解决这个问题。我们在另一台虚拟机上部署了相同的服必须是破碎的网卡