ASP.NET应用程序池回收问题
|
我有一个既有WebForms又有WCF服务的Web项目安装程序。我遇到一个问题,就是我的应用程序似乎经常循环使用,我丢失了所有单例对象和会话值。它似乎不是超时问题,但可能是某种内存泄漏。我们可以使用该应用程序一分钟左右,然后再冒险,它会丢失所有内容。
我曾尝试监视目录中的更改,但没有发现文件系统有任何更改。我还在Application_Error中放置了一个断点,并且没有抛出任何错误。
我已经搜寻了两天,试图解决此问题。该应用程序是先前正常运行的项目的直接复制。我注意到不同的一件事是我上一个使用nHibernate作为后端的项目,而我切换到了使用Linq to SQL的项目。我注意到我没有正确地处理DataContext,因为我在服务调用内部将DataContext的一个实例变暗并返回一个值,然后才将其处置或将上下文设置为空,因此我认为它可能没有关闭。我试过将数据上下文存储在我的\“ repository \”类中,而不是将其存储在operationcontext内部,并明确地将其放置在Application_EndRequest上。那仍然没有解决问题。
有人对我有什么建议或地方吗?
**更新**:我相信我找到了问题。我有一些正在使用EntitySet的对象,我正在使用可序列化的IList属性直接将这些对象序列化,并带有返回列表的linq查询。当我尝试在返回数据之前显式处理数据上下文时,由于数据上下文不再处于活动状态,我现在遇到了序列化那些EntitySet的问题。我将尝试使用常规列表(而不是EntitySet \)将数据复制到新的空白对象中,看看是否可以使我正确关闭数据上下文并解决问题。
没有找到相关结果
已邀请:
2 个回复
长拳
死狸蔽垂藐