每天第一次调用Web服务很慢

时间:2009-06-22 18:48:39

标签: web-services timeout

在构建此Web服务和调用它的应用程序时,我们注意到每天第一次调用Web服务的速度非常慢。它甚至会在某些日子里超时。然而,在那之后的每一次电话都很棒。任何人都可以阐明为什么会这样,以及我们如何摆脱这种痛苦?

提前致谢!

6 个答案:

答案 0 :(得分:8)

如果它是ASP.NET Web服务,则可能是CLR首次初始化并加载和验证程序集。您可能需要考虑pre-compilation

答案 1 :(得分:3)

同意缓存,初始化等方面的其他答案。就解决方法而言,一种可能性是设置某种日常任务(SQL Server作业,Windows服务,还有其他什么?)来模拟命中每天的服务,以便您的用户不会遇到这个第一个慢速请求。

答案 2 :(得分:2)

如果它是ASP.NET Web服务,那么您可能需要检查运行Web服务的应用程序池的设置,尤其是IIS7中默认为20分钟的空闲超时。

Configuring IIS7 idle-timeout

即使它不是ASP.NET Web服务,其他Web服务器也将具有相同的配置设置,您必须进行调整以使您的Web服务在一夜之间保持活动状态。

答案 3 :(得分:1)

您可以在数据库中复制相同的行为吗?它可能只是需要优化第一次运行查询的数据库(也许参数是今天的日期?)。

答案 4 :(得分:0)

Global.asax类中是否有很多静态构造函数或设置代码?由于IIS会定期回收工作进程,因此启动代码可能会再次运行。

答案 5 :(得分:0)

优化规则是:不要猜测。进行分析以找出究竟什么是慢的,然后努力使其更快。已发布的所有内容都提供了从何处开始寻找缓慢的优秀提示。