服务层分为命令和查询端,每一端都有自己的处理程序。
使用以下配置
// 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。
当我连续快速执行两个加载请求时会发生错误,因此第一个未完成而第二个发生。