我们有一个托管在IIS上的WCF服务。该服务接收请求并基于其中一个请求参数,它自己提供请求或将其重定向到其他服务器。重定向的过程实质上是对另一个经典Web服务(asmx)的调用。WCF服务 - 呼叫重定向问题
我们一直面临的问题是,当我直接调用asmx服务时,我们得到的响应时间不到20毫秒,但是当通过WCF服务调用响应时,响应时间会缩短到300毫秒。我的推测是,请求在被分派到WCF服务的asmx服务之前正在某处(IIS)被阻止。我一直试图检查性能计数器,但是,看不到任何计数器,我可以从中得出任何结论。我也检查了IIS日志,这也不是很好的指示。
我试图ping托管服务器主机asmx服务托管wcf服务的服务器,它只需要几乎3ms获得响应回来。
有没有什么办法可以让我得出结论:通话中多余的时间在何处?
更新 - 我试着使用Fiddler,它将响应时间缩短到20 ms apprx。如果我删除提琴手,响应时间上升到200毫秒
从框架3.5调用时建立在Framework 2.0中的服务可能会响应速度慢吗?
更新2 我们已经缩小到代理的问题。如果我们拒绝fiddler中的代理选项,响应时间会增加。对WCF服务的调用是在basicHttpBinding上进行的,后者又调用asmx服务。它看起来像Fiddler缓存代理并在下次重新使用它。如果这种理解是正确的,那么在我们的设置中是否可以实现类似的东西?
我将从诸如ANTS Profiler或Visual Studio等工具分析WCF服务开始。此外,这是发生在单个电话还是重负载? – 2014-10-30 08:47:54
这也适用于单个呼叫。 – vibhu 2014-10-30 09:22:58