WCF Castle 客户端代理保持通道打开
我正在使用 Castle WCF 工具来使用以下配置初始化客户端代理:
<component
id="ComponentID"
type="SomeType, SomeType"
wcfEndpointConfiguration="WCFConfig"
lifestyle="PerWebRequest" >
</component>
我遇到的问题是,在实时情况下,我最终会遇到大量内存泄漏。使用内存分析器对此进行分析后,我似乎在内存中留下了大量的 WCF 通道。我期望 Castle WCF 设施在网络请求结束时清理这个问题是否正确?
I am using Castle WCF Facility to initialise a client proxy using the following configuration:
<component
id="ComponentID"
type="SomeType, SomeType"
wcfEndpointConfiguration="WCFConfig"
lifestyle="PerWebRequest" >
</component>
The problem I'm having is that in live I'm ending up with a large memory leak. Having analysed this with a memory profiler, I seem to have a large number of WCF Channels left in memory. Am I right to expect Castle WCF Facility to clean this up at the end of the web request?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果您使用 perwebrequest 生活方式,则需要确保在整个请求过程中不会重新创建 HttpContext。如果是,那么您需要传递 HttpContext.Items,因为 Castle http 模块使用它来跟踪组件。
例如
改变这个:
到这个:
If you use the lifestyle perwebrequest you need to ensure that HttpContext is not recreated throughout the request. If it is, then you need to pass HttpContext.Items around as Castle http modules use this to track the components.
e.g.
Changed this:
To this: