我有一个使用自定义UsernamePasswordValidator的WCF服务。验证器需要访问我的实体框架上下文。访问WCF中的当前InstanceContext UsernamePasswordValidator
我想为整个服务调用创建一个ObjectContext,然后在调用结束时销毁/处理它。因此,我创建了一个提供此功能的单例静态类,但是,现在发生的情况是,如果两个服务调用并发发生,其中一个调用会处理单例。
我要么保留对ObjectContext的本地引用,在这种情况下,使用它的第二个服务将它视为已丢弃并引发错误,或者,我在任何需要它的地方将Singleton类放在一个包装器属性中,然后全部我的更改会被抛弃,因为如果另一个调用已经处理了该对象,那么我将获得该对象的一个新实例。
所以基本上我的问题是如何实例化一个ObjectContext每个服务调用?
注意:实例需要在服务代码和自定义UsernamePasswordValidator代码中都可以访问。
我不能只是在构造函数中使用它或使用using语句,因为然后自定义UsernamePasswordValidator无法访问它。有没有办法让每个通话都有一个静态类?这听起来不可能,但是这是怎么回事?我应该在会话中缓存对象吗?
我的服务托管在IIS中。
UPDATE:
所以我钉下来到使用IExtension对象中的InstanceContext存储状态。但是,如何访问UsernamePasswordValidator中的当前InstanceContext?
我已经拥有该属性。我遇到的问题是在实际服务代码和UsernamePasswordValidator代码之间共享上下文。 – 2010-07-23 09:55:47