当天第一次调用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服务在做什么?
根据您的描述,如果一段时间不活动后的第一次调用速度较慢,后续调用速度较快,那么您的Web服务听起来可能会进入睡眠状态。
我在我的许多.NET IIS应用程序上看到过这种行为,至少可以说是令人沮丧的!
然而,这是默认的.NET行为,但也有一些方法可以让应用程序保持清醒,尤其是在.NET4中。
我建议你参考下面的文章作为第一步。试试看,这对你来说是否有什么不同:https://www.simple-talk.com/blogs/2013/03/05/speeding-up-your-application-with-the-iis-auto-start-feature/
祝你好运!