WCF服务器端和MEF内存泄漏 [英] WCF server side and MEF memory leaks

查看:55
本文介绍了WCF服务器端和MEF内存泄漏的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

您好,

我正在处理一个大型WCF应用程序,对于服务器端,我正在使用MEF将所有依赖项注入我的服务类中.客户端调用时,自定义InstanceProvider将创建服务.

我的服务在每次调用时都具有实例模式,并且我使用非共享零件创建来创建零件.由于所有类之间都存在依赖性,因此在创建新服务实例时,会创建不同类的许多实例 已创建.

My services have instance mode per call, and I used NonShared part creation for the creation of the parts. Because of the dependencies between all the classes many instances are created of different classes when a new service instance is created.

在对代码进行性能分析期间,我注意到多次调用服务时会发生巨大的内存泄漏.

During profiling of the code I noticed that there was a huge memory leak when services are called multiple times.

我进行了一些研究,发现MEF在我的物体已经被处置时正在握住它们.

如何更改此行为,以便MEF释放那些对象?

还是无法实现?

我正在决定是否需要更改IoC容器的其他名称,因为这不能正常工作,并且我正接近该应用程序的启动日期.

但是,对于WCF服务器端应用程序来说,什么是一个好的IoC容器?

那没有这个缺点,当我完成这项服务后会释放内存吗?

任何帮助将不胜感激.

有关 

Marcel

推荐答案

>>如何更改此行为,以便MEF释放那些对象?

似乎有三种方法可以解决此问题,建议您参考下面的链接,以检查它是否对您有用.

#MEF保留对非共享IDisposposable部件的引用,不允许它们由GC收集

根据您的描述,它似乎与调用服务时的MEF创建对象有关.我建议您尝试通过一个包含MEF的小项目来重现您的问题,然后我们可以与您紧密合作 通过这个项目.

Based on your description, it seems it is related with the MEF create objects when services are called. I would suggest you try to reproduce your issue with a small project which contains MEF, and then we could work closely with your issue by this project.

最好的问候

爱德华


这篇关于WCF服务器端和MEF内存泄漏的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆