0

我有一个 MVC3 应用程序,执行 global.asax Application_Start() 需要 30 多秒。当用户在应用程序池重置后第一次访问该站点时,浏览器只是坐在那里并显示“等待网站...”消息。

有没有办法显示“正在加载数据...”消息/页面,让用户知道一切正常并耐心等待?

4

3 回答 3

1

不,无法显示来自Application_Start. IIS 7.5 有一个很酷的自动启动功能,它允许您将应用程序预加载到内存中,从而避免长时间的等待。另一种可能性是让一些外部服务定期查询您的站点,这样它就不会被 IIS 卸载。

如果您不能使用此功能,那么您将不得不减少/优化您的工作量,Application_Start以便不需要 30 秒。

于 2012-08-28T12:15:38.260 回答
0

您不能以那种特别的方式这样做,因为服务器没有响应,因此,您无能为力。

但是如何实现一个心跳来查询应用程序的任何 URL 以避免它不进入待机模式?


一个想法:设置一个外部服务每 5 分钟查询一次您的应用程序:

在 momentapp 的 restful api 上的 RestSharp 请求

于 2012-08-28T12:16:53.000 回答
0

不在同一个 .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?

于 2012-08-28T12:20:12.607 回答