在构建这个web服务和调用它的应用程序时,我们注意到每天第一次调用web服务的速度非常慢。它甚至会在某些日子里超时。但是,之后的每次通话都很好。任何人都可以阐明为什么会这样,以及我们如何摆脱这种痛苦?每天首次给web服务打电话很慢
在此先感谢!
在构建这个web服务和调用它的应用程序时,我们注意到每天第一次调用web服务的速度非常慢。它甚至会在某些日子里超时。但是,之后的每次通话都很好。任何人都可以阐明为什么会这样,以及我们如何摆脱这种痛苦?每天首次给web服务打电话很慢
在此先感谢!
如果它是一个ASP.NET Web服务,它可能是CLR初始化并首次加载和验证程序集。你可能要考虑pre-compilation
如果您缓存任何数据,您也必须等待该操作。 – rie819 2009-06-22 18:52:18
你可以在你的数据库上复制相同的行为吗?它可能只是数据库需要优化第一次运行的查询(也许参数是今天的日期?)。
在Global.asax类中是否有很多静态构造函数或设置代码?由于IIS定期回收工作进程,启动代码可能会再次运行。
同意缓存,初始化等方面的其他答案就解决方法而言,一种可能性可能是设置某种日常任务(SQL Server作业,Windows服务,其他的东西?)来模拟一个命中每天提供服务,这样您的用户就不会遇到这个第一个缓慢的请求。
优化的规则是:不要猜测。通过分析找出究竟什么是缓慢的,然后努力做到这一点。已发布的所有内容都提供了有关从哪里开始寻找缓慢的极好技巧。
如果它是一个ASP.NET Web服务,那么您可能需要检查Web服务正在运行的应用程序池的设置,特别是IIS7中默认为20分钟的空闲超时。
即使它不是一个ASP.NET Web服务,其他Web服务器会有那么你就需要相当的配置设置,让您的网络服务还活着过夜。
你知道事情正在放缓吗?客户是否打开了与服务的连接?该服务是否获得了数据库连接? – skaffman 2009-06-22 18:54:51