我有一个MVC3应用程序需要30多秒才能执行global.asax Application_Start()。当用户在重置应用程序池后第一次访问该站点时,浏览器就会在那里找到“等待网站...”消息。
有没有办法显示“正在加载数据...”的消息/页面,让用户知道一切正常并且耐心等待?
答案 0 :(得分:1)
不,无法显示来自Application_Start
的任何消息。 IIS 7.5有一个很酷的AutoStart feature,它允许您在内存中预加载应用程序,从而避免漫长的等待。另一种可能性是使用一些外部服务定期查询您的站点,以便IIS不会卸载它。
如果您无法使用此功能,则必须减少/优化您在Application_Start
中执行的工作量,以便不需要30秒。
答案 1 :(得分:0)
你不能以那种特别的方式做到这一点,因为没有来自服务器的响应,因此,你不能做任何事情。
但是如何实现一个心跳来查询应用程序的任何URL,避免它不进入站点模式?
一个想法:设置外部服务以每5分钟查询一次应用程序:
答案 2 :(得分:0)
不在同一个.net应用程序中 - 您无法在Application_Start
内显示任何内容。您可以创建另一个小应用程序作为登录页面,该页面会轮询主应用程序的响应,然后一旦获得响应,就会重定向。
但更好的解决方案是将某些工作移出Application_Start
- 你不能让用户到达你的第一页,然后在他们登陆后调用初始化方法吗?