当天第一次调用C#webservice非常慢 - 分析

时间:2014-10-14 03:03:45

标签: c# asp.net web-services

这个问题实际上是围绕分析 - 我如何分析造成问题的原因?

情况 - 我们有一个通过IIS 7.5配置的C#webservice,以及同一个Intranet域中使用POST和GET方法访问Web服务的网站。服务器是Windows 2008 r2 64位,C#是4.0。当天的第一个电话很慢(30-60秒),虽然我没有检查我是否在当天晚些时候再次尝试它是否也很慢。后续通话为2-3秒。使用FireFox Web控制台或firebug进行检查时,花在“等待”Web服务上的时间。

我尝试过的事情: -

  • 为webservice AppPool设置无回收时间
  • 为webservice AppPool设置无空闲超时
  • 设置代理bypassonlocal = true并使用systemdefault = false以防它是代理查找问题

到目前为止,没有任何工作。我的想法是,即使它是首次运行的C#编译到机器代码,如果AppPool没有超时或回收,它也不会“过期”,但它每天都很慢。

选项如此平坦,我如何试图找到问题的根源?我可以在服务器上运行任何诊断来检查Web服务正在做什么?

1 个答案:

答案 0 :(得分:2)

根据您的描述,听起来好像您的网络服务可能会在一段时间不活动后第一次呼叫进入睡眠状态,后续呼叫速度更快。

我发现在我的许多.NET IIS应用程序中都会出现这种情况,至少可以说是令人沮丧!

然而,这是默认的.NET行为,但是有一些方法可以让您的应用程序保持清醒状态,尤其是从.NET4开始。

作为第一步,我将您引用到以下文章。试一试,看看这对你有什么影响: https://www.simple-talk.com/blogs/2013/03/05/speeding-up-your-application-with-the-iis-auto-start-feature/

祝你好运!