我有以下场景:
WCF Windows 服务 1
- 有工作要完成时调用 WCF 服务 2
- 使用结果更新数据库
WCF Windows 服务 2
使用托管可扩展性框架 (MEF) 在新的应用程序域中动态组合部件(插件)。
然后插件创建一个 Watin 实例(开源 .net 测试框架),该实例又创建一个新的 IE 进程,执行一些 WWW 导航,执行一些屏幕抓取,截取屏幕截图
一切都返回给调用者。
我在 WCF Windows 服务 2 中看到逐渐的内存泄漏,并且必须每隔几天重新启动一次。使用 perfmon 在我的开发环境中(孤立地)分析了服务后,我似乎看不到内存泄漏。我曾尝试使用.Net Memory Profiler,但似乎也没有得到任何结论。IDispose 已实现并被调用。
我开始认为是两个 WCF Windows 服务之间的交互可能会保留对象引用并阻止 IDispose 被调用。有没有其他人看到过这种行为?还是我在叫错树?
在任何人提到之前......我明白正在做的事情很疯狂......