内存泄漏在Windows服务- InterceptableDbCommand

本文关键字:InterceptableDbCommand 服务 Windows 泄漏 内存 | 更新日期: 2023-09-27 18:02:30

我有内存泄漏的问题。当我在窗口模式下运行应用程序时,一切正常,但是当我将其作为Windows服务托管时,存在内存泄漏问题。它不会释放DbContext和其他对象,因为它们被引用到InterceptableDbCommand,这是GC根。InterceptableDbCommand包含对实体框架生成的数据库的查询。

应用程序和windows服务模式在释放内存方面有什么不同?

内存泄漏在Windows服务- InterceptableDbCommand

一般情况下,垃圾收集器释放内存,如果它的'Gen 0'溢出(大对象堆也可以触发GC)。AFAIK垃圾收集器使用相同的方法来释放。net应用程序和Windows服务的内存。

如果有内存泄漏可能存在于应用程序和Windows服务(如果工作流是完全相同的)。也许您在应用程序中也有同样的问题,但由于它的工作流性质,您没有注意到。你是如何测试内存泄漏的?

更重要的是:确保你处置了InterceptableDbCommand和所有其他一次性对象

我找到原因了。主方法中有属性[STAThread],删除后一切正常

相关文章:
  • 没有找到相关文章