【发布时间】:2013-06-15 21:30:42
【问题描述】:
服务层分为命令端和查询端,每一端都有自己的处理程序。
使用如下配置
// EF context
_container.RegisterPerWcfOperation<MyDbContext, MyDbContext>();
_container.RegisterManyForOpenGeneric(typeof(IHandler<>),
ApplicationAssemblies);
// many more regs but nothing special
SimpleInjectorServiceHostFactory.SetContainer(_container);
以及所需的标记设置:
Factory="SimpleInjector.Integration.Wcf.SimpleInjectorServiceHostFactory, SimpleInjector.Integration.Wcf"
抛出以下异常:
WCF 范围不能嵌套。
我认为错误发生在
internal WcfOperationScope BeginScope()
WcfOperationScopeManager 的实现。
一些背景资料:
- WinForm 应用程序
- QueryClient 的执行由后台工作人员完成
- 我正在使用 Simple Injector 2.2.3 版
- 构建容器的 Global.asax
- 托管在 IIS 中
- 每个 .svc 都将其标记设置为使用
SimpleInjectorFactory -
wsHttpBinding带证书和自定义UserNamePasswordValidator - 每个端点配置都将所有需要的值设置为 2147483647。
当我连续快速执行两个加载请求时出现错误,所以第一个没有完成,第二个发生了。
【问题讨论】:
标签: wcf dependency-injection ioc-container simple-injector lifetime-scoping