我们有一个系统,我们在IIS中托管几个WCF应用程序.其中一些应用程序有一段延长的启动时间需要几秒钟(超过用户愿意等待的时间).一旦它启动并运行,一切都很快,所以它真的只是启动时间.
客户端还需要每晚回收应用程序池.
有没有办法唤醒所有这些服务,以便启动时间不是系统的第一个用户的问题?
初步想到在哪里编写一个Windows服务,每隔x(可配置)分钟就可以在每个服务上调用一个轻量级方法,以保持应用程序的活跃,但是因为我们处于负载平衡环境中,并且应用程序需要传递特定的主机头,我们总是会遇到负载均衡地址,这意味着我们无法确保群集中所有盒子上的所有服务都已实际启动.
由于IIS中的单个wcf应用程序只能有一个主机头,因此唯一的另一种方法是设置指向同一应用程序的第二个iis网站.我只是不确定这是否会成功,因为它将在另一个主机环境中.
另一种选择可能是在IIS或应用程序池实际再次启动时,可能会调用IIS的扩展(不确定是否可能),这可能会调用我们的每个服务.(当应用程序池已经回收但在第一个用户请求之前注意到的事情.
任何想法将不胜感激.
谢谢
Gineer