我使用Rick Strahl的这篇文章中的代码示例:http://www.west-wind.com/weblog/posts/324917.aspx对WCF服务进行异步调用,这非常有效。
My problem is this: First call to the WCF Service takes in the vicinity of 20ms, whereas the next takes around 1sec 20ms (doing exactly the same and receiving the exact same data). If I repeat the process the result is the same all the time. Every other call takes one second longer than the first.
我已尝试在服务上设置InstanceContextMode:
[ServiceBehavior(IncludeExceptionDetailInFaults = true, InstanceContextMode = InstanceContextMode.PerSession)]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public abstract class AjaxPostBack : IAjaxPostBack
我还在服务上调用的方法中设置了计时器,每次的结果都是一样的(当然有一些ms的差异,但没有什么显著性)
"JSON_Took":"00:00:00.0012939","Set_took":"00:00:00.0000274"
(这些值-JSON_Took和Set_Took-是代码隐藏方法中的计时器。所以不是来自客户端-服务器客户端的总时间。这只是为了说明实际代码耗时不是问题)
有什么想法吗?
如果你需要更多信息,请告诉我。
----有趣的更新----
I downloaded IE9 RC and also Firefox (I ve been testing in Chrome) My results from the different browsers:
Firefox:所有通话在约1s 20ms至1s 30ms时保持一致
Chrome浏览器:每隔一个调用都以Firefox的速度启动,其余调用则快1秒
IE9:所有呼叫几乎在任何时间都是一致的(~20ms)
歌剧:与IE9差不多(约30ms)
这是网络工具包的问题吗?(我正在使用$.ajax来调用WCF)