我有一个 MVC3 应用程序,执行 global.asax Application_Start() 需要 30 多秒。当用户在应用程序池重置后第一次访问该站点时,浏览器只是坐在那里并显示“等待网站...”消息。
有没有办法显示“正在加载数据...”消息/页面,让用户知道一切正常并耐心等待?
我有一个 MVC3 应用程序,执行 global.asax Application_Start() 需要 30 多秒。当用户在应用程序池重置后第一次访问该站点时,浏览器只是坐在那里并显示“等待网站...”消息。
有没有办法显示“正在加载数据...”消息/页面,让用户知道一切正常并耐心等待?
不,无法显示来自Application_Start
. IIS 7.5 有一个很酷的自动启动功能,它允许您将应用程序预加载到内存中,从而避免长时间的等待。另一种可能性是让一些外部服务定期查询您的站点,这样它就不会被 IIS 卸载。
如果您不能使用此功能,那么您将不得不减少/优化您的工作量,Application_Start
以便不需要 30 秒。
您不能以那种特别的方式这样做,因为服务器没有响应,因此,您无能为力。
但是如何实现一个心跳来查询应用程序的任何 URL 以避免它不进入待机模式?
一个想法:设置一个外部服务每 5 分钟查询一次您的应用程序:
不在同一个 .net 应用程序中 - 您不能从 .net 应用程序中显示任何内容Application_Start
。您可以创建另一个小应用程序作为登录页面,该页面会轮询来自您的主应用程序的响应,然后在收到响应后重定向。
But a better solution would be to move some work out of Application_Start
- can't you let the user arrive at your first page and then call an initialization method once they have landed?