【发布时间】:2014-04-04 00:09:42
【问题描述】:
我正在使用 ServiceStack 框架开发一个 Web 服务项目。 我想创建一个全局对象(在我的例子中,我正在处理的 GDS 系统的 SessionManager 对象,它与 ASP.NET 会话无关)以供所有传入请求访问。
但是,我面临一个问题,即 ASP.NET 将创建我的应用程序的一个新实例,从而在它的生命周期中创建我的 SessionManager 的一个新实例几次。我通过在 Global.asax 类中的 Application_Start 和 Application_End 受保护方法上放置一条调试线来验证这一点,并意识到 Global.asax 类在其生命周期中启动和结束多次。我尝试在静态类中声明我的 SessionManager 并通过静态构造使用它,但它仍然会创建我的 SessionManager 的新实例。不知道为什么。
所以我的问题是如何创建一个可以被所有请求访问的适当的全局(内存中)对象?
最初我认为通过使用 IoC 容器并指定其单例范围,我可以实现单例对象,但在 ASP.NET 世界中似乎并非如此。所以请原谅我在 ASP.NET 领域的知识,因为我来自前端开发背景。希望从这个社区的一些专家那里获得一些这方面的知识。提前致谢!
【问题讨论】:
-
你对服务器有多少控制权?
-
对部署端没有太多控制,因为它将是 Windows Azure 网站/共享托管服务器
-
如果您在云提供商中运行,那么这台机器就是您的。如果您需要一些东西,例如数据库或缓存服务器……只需单击 2 次即可
标签: c# asp.net web-services servicestack