我正在编写一个基本的 RESTful 服务,并决定使用 ASP.NET MVC 3 来完成这项任务。我的应用程序将负责维护每个用户与服务器的持久连接(目前)。我曾假设这Application_Start
是注册静态/共享状态(如持久连接)的地方,但在阅读了 Unity.MVC3 的文档后,似乎每个请求/响应周期都会触发服务的创建(通过调用 Application_Start)。
我参考的文档说:
在每个请求中,DependencyResolver 通过 Unity 实例化一个 UpperCaseService、一个 LowerCaseService 和一个 ExampleContext。在请求结束时,ExampleContext 被自动释放
在阅读了其他文档之后,根据我的假设,Application_Start 将在每个生成的 AppDomain 中调用(再次假设这将在服务器上有多少核心附近)。
那么,维护一组与服务器的持久连接、在请求/响应阶段幸存下来,并且如果可能的话,在 IIS 服务器创建的所有 AppDomain 之间共享的有效方法是什么?
提到这个 Web 服务只会被另一个网站使用可能会有所帮助。它本质上是一个身份验证代理服务器,但是,在未来,它会做更多的事情。因此,我不能只缓存响应,因为将来需要请求,并且重新验证不是一种选择。