当天第一次调用C#Web服务的速度非常慢-分析

本文关键字:速度 非常 -分析 服务 第一次 调用 C#Web | 更新日期: 2023-09-27 18:26:27

这个问题实际上是围绕分析的——我如何分析导致问题的原因?

情况-我们有一个通过IIS 7.5配置的C#Web服务,并且同一intranet域中的一个网站使用POST和GET方法访问Web服务。服务器是windows 2008 r2 64位,C#是4.0。当天的第一次通话很慢(30-60秒),尽管我没有检查是否在当天晚些时候再次通话也很慢。后续通话时间为2-3秒。当使用FireFox网络控制台或firebug进行检查时,时间会花在"等待"web服务上。

我尝试过的事情:-

  • 没有为Web服务AppPool设置回收时间
  • 没有为Web服务AppPool设置空闲超时
  • 如果是代理查找问题,则设置proxybypassonlical=true和usesystemdefault=false

到目前为止什么都没用。我的想法是,即使它是C#在第一次运行时编译到机器代码,如果AppPool没有超时或回收,它也不应该"过期",但它每天都很慢。

既然没有选择,我该如何着手寻找问题的根源?我可以在服务器上运行任何诊断程序来检查Web服务在做什么?

当天第一次调用C#Web服务的速度非常慢-分析

根据您的描述,如果一段时间不活动后的第一次调用速度较慢,后续调用速度较快,那么您的Web服务听起来可能会进入睡眠状态。

我在我的许多.NET IIS应用程序上看到过这种行为,至少可以说是令人沮丧的!

然而,这是默认的.NET行为,但也有一些方法可以让应用程序保持清醒,尤其是在.NET4中。

我建议你参考下面的文章作为第一步。试试看,这对你来说是否有什么不同:https://www.simple-talk.com/blogs/2013/03/05/speeding-up-your-application-with-the-iis-auto-start-feature/

祝你好运!