我们有一个系统,我们在IIS中托管几个WCF应用程序。其中一些应用程序的启动时间有点延长,需要几秒钟(比用户更乐意等待)。一旦启动并运行,虽然一切都很快,所以它只是启动时间。如何避免IIS托管的WCF应用程序出现冷启动问题?
客户端还需要每天晚上回收应用程序池。
是否有某种方法可以唤醒所有这些服务,以便启动时间对系统的第一个用户不是问题?
最初的想法是在哪里编写一个windows服务,该服务只需在每个x(可配置)分钟内调用每个服务的轻量级方法以保持应用程序的活动,但由于我们处于负载平衡的环境中,并且应用程序需要特定的主机头部被传递时,我们总是会打到负载平衡地址,这意味着我们无法确保群集中所有框上的所有服务都实际启动。
由于IIS中的一个wcf应用程序只能有一个主机头,唯一的另一种方法是设置指向同一应用程序的第二个iis网站。我只是不确定这是否会做到这一点,因为它会在另一个主机上下文中。
另一种选择可能是像IIS的扩展(不知道这是否可能),当IIS或应用程序池实际再次启动时可能会调用我们的每个服务。 (东西注意到当应用程序池已回收,但第一个用户请求之前。
任何想法,将不胜感激。
感谢
Gineer
IIS7有一个名为Application Warmup或类似的功能。 – 2010-02-18 16:41:35