【发布时间】:2010-02-21 19:25:21
【问题描述】:
我有一个托管在 ASP.NET 页面中的 Silverlight 应用程序。当应用程序第一次启动并启动一些后台进程(各种定期检查)时,我需要做一些处理。
我认为 Global.asax Application_Start 事件是执行此操作的好地方,但我发现 Application_Start 会触发多次,这是我没想到的。从我读到的内容看来,当最后一个用户退出我的应用程序时,他们的会话消失了,IIS 卸载了我的应用程序。下一次请求时,它会再次加载,Application_Start 会再次运行,这并不是我真正想要的。
这是预期的行为吗?有什么办法可以让应用程序保持加载状态而不是像这样重新启动?
其次,我要运行这些定期后台进程。也许 Windows 服务对他们来说是一个更好的地方,但是在我的应用程序的静态类中运行一个计时器很方便。即使没有活跃用户,有什么方法可以让它们继续运行吗?
【问题讨论】:
-
什么时候触发事件,也许我们可以这样提出建议。
-
明确地说,我希望它只触发一次 - 即在对应用程序的第一次请求时,并且在服务器本身重新启动之前永远不会再次触发。
-
你能创建一个在启动时运行的命令行项目吗?与网页分开。
标签: asp.net silverlight