|
2
|
| Sandor Drieënhuizen · 技术社区 · 15 年前 |
|
|
1
3
我设法解决了。 通过检查sharparch.wcf源代码,我发现在发送wcf服务响应之前,它总是关闭所有nhibernate会话。这本身就是一件好事。 另外,我发现我的客户端代理工厂在每个web请求中只触发一次,而第二个服务调用应该会产生一个新的代理实例。结果是,第二个服务调用将失败,因为底层的nhibernate会话已经关闭。我用 Castle.Core.过渡属性 ,这将生命周期管理留给创建客户机的工厂。其结果是每次请求代理时都会调用代理工厂。 其次,我必须这样注册代理(在 组件注册器 班级):
这个 WCF会话设施 根据客户机的状态管理其关闭/中止。这可以确保每当客户机代理被破坏时,客户机通道都是关闭的,因此我们不需要将调用放入try catch块中。 像我一样,您可能会考虑在添加组件而不是使用属性时配置生存期管理,但显然没有合适的 AddComponentWithExtendedProperties 这就允许了。 |
|
|
2
1
我对sharparchitecture不太熟悉,但似乎您至少有两个选择:
|
|
|
A B · C#Excel自动调整列避免长文本时出错 8 月前 |
|
|
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 8 月前 |
|
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 8 月前 |
|
|
Sei · Avalonia/WPF将路由器传递到控制模板 8 月前 |