DataContractSerializer泄漏内存直到进程死亡

时间:2010-01-05 18:57:03

标签: .net wcf entity-framework memory-leaks datacontractserializer

我有一个使用EF4的.net4应用程序,我使用BasicHttpBinding通过WCF公开我的模型(但是这可以改变)每次我尝试调用这个方法时我的web服务器进程开始在内存中增长并且进程死掉。

问题是当DataContractSeralizer尝试序列化我的实体(有一些关系)进入递归堆栈时。那么,为了通过WCF服务这个实体,是否有任何特殊配置或缺少的东西。

这里有一些额外的信息: 我的EF模型的屏幕截图:http://www.luisguerrero.net/stackoverflow/efmodel.jpg

public List<ExtendedSession> GetAllExtendedSessionByFilter(int id)
{
        QueryDataAccess<ExtendedSession, NextWebEntities> query = new QueryDataAccess<ExtendedSession, NextWebEntities>("ExtendedSession");
        List<ExtendedSession> result = query.GetAllByFilter(item => item.SessionId == id, "Rule");
        return result;
}

1 个答案:

答案 0 :(得分:0)

我通常通过序列化数据投影而不使用任何循环引用来解决这个问题,将其写为LINQ查询。