【发布时间】:2012-04-15 13:22:39
【问题描述】:
这个问题几乎在标题中,但我会详细说明。
我有一个 Silverlight 应用程序,它充当稍微扩展的用户界面。
我的程序的主要部分将在服务器上运行以保持共享数据库的一致性。
这就是我的问题所在:调用 WCF 服务的两个客户端会各自在该服务中获得一个线程,还是他们会各自获得一个完整的 AppDomain?
不同之处在于,如果是第一种情况,他们可以轻松共享数据库,但在第二种情况下,他们不能 - 据我了解。
编辑:这是因为数据库使用了身份映射模式 [Fowler],其中使用的对象保存在物理内存中(静态单例变量) - 多个 AppDomain 会搞砸。
(在问这个看似简单的问题之前,我问了我的大学老师并进行了相当多的搜索)
【问题讨论】:
-
这个问题可能有一些关系,虽然我没有设置多个appdomains开头:stackoverflow.com/questions/7984803/…
-
每个传入的请求都将获得自己的服务类的新实例来处理请求(在默认的每次调用场景中) - 但据我所知,不是它自己的 appdomain。所以两个请求将是服务类的两个独立的独立副本
标签: multithreading wcf service appdomain shared-data