c# - 对异步 WCF 的所有其他调用都很慢

标签 c# jquery wcf asynchronous

我正在使用 Rick Strahl 这篇文章中的代码示例:http://www.west-wind.com/weblog/posts/324917.aspx对 WCF 服务进行异步调用,效果非常好。

我的问题是: 第一次调用 WCF 服务大约需要 20 毫秒,而下一次调用大约需要 1 秒 20 毫秒(执行完全相同的操作并接收完全相同的数据)。如果我重复这个过程,结果总是一样的。其他所有调用都比第一个多花一秒钟。

我已经尝试在我的服务上设置 InstanceContextMode:

  [ServiceBehavior(IncludeExceptionDetailInFaults = true, InstanceContextMode = InstanceContextMode.PerSession)]
    [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
    public abstract class AjaxPostBack : IAjaxPostBack

我还在服务调用的方法中设置了计时器,每次的结果都是一样的(当然有一些毫秒差异,但没什么大不了的)

"JSON_Took":"00:00:00.0012939","Set_took":"00:00:00.0000274"

(这些值 - JSON_Took 和 Set_took - 是代码隐藏方法中的计时器。因此不是客户端-服务器-客户端的总时间。这只是为了说明实际代码耗时不是问题)

有什么想法吗?

如果您需要更多信息,请告诉我。

---- 有趣的更新 ----

我下载了 IE9 RC 和 Firefox(我一直在 Chrome 中测试) 我在不同浏览器中的结果:

Firefox:所有调用在大约 1 秒 20 毫秒到 1 秒 30 毫秒之间保持一致

Chrome:所有其他调用都以 Firefox 的速度触发,其余的则快 1 秒

IE9:所有调用几乎完全一致(~20 毫秒)

Opera:与 IE9 几乎相同(~30 毫秒)

这是一个 webkit 问题吗? (我正在使用 $.ajax 来调用 WCF)

最佳答案

我不会依赖开发服务器的计时。如果将服务部署到 IIS(甚至是 IIS Express)会怎样? VS2010 DevServer 在计时方面不如服务器可靠,也不是生产性能的良好指标。

Here's a good article (虽然有点过时)讨论 IIS 和 Visual Studio Web 服务器(又名 Cassini)之间的差异。

很高兴这有帮助!

关于c# - 对异步 WCF 的所有其他调用都很慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5002233/

相关文章:

c# - Polly 使用不同的请求主体重试请求

javascript - jQuery 邮政编码验证不起作用

javascript - 计算后24小时输出正确格式

c# - Wcf - 异常前重试 3 次?

wcf - 设计 WCF 数据契约和操作

c# - 基于key的异步锁

c# - Javascript 与 C#

c# - 办公室功能区是否可以有多个自定义选项卡?

javascript - 根据容器 div 在浏览器窗口中的位置移动绝对定位的图像

c# - 对 WCF 客户端进行单元测试