DataContractSerializer утечка памяти, пока процесс не умирает - PullRequest
0 голосов
/ 05 января 2010

У меня есть приложение .net4, использующее EF4, я выставляю свою модель через WCF, используя BasicHttpBinding (но это можно изменить), что каждый раз, когда я пытаюсь вызвать этот метод, мой процесс веб-сервера начинает расти в памяти, и процесс умирает.

Проблема в том, что когда 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 голосов
/ 07 января 2010

Обычно я решаю эту проблему путем сериализации проекции данных без каких-либо циклических ссылок, записанных как запрос LINQ.

...