Обзор DataContext периодически повышает ошибку исполнителя

StackOverflow https://stackoverflow.com/questions/1144033

Вопрос

Наше приложение следует подходу к поддержанию данных dataContext на поток/httpcontext, используя класс DataContextFactory, описанный Риком Стралом на его блог, включая поправку к ключу, упомянутому Ричардом (использование типа. AssemblyQualifiedName).

Решение оказалось звуковым (хотя в большинстве случаев другой подход может быть лучше), однако, используя это, я видел прерывистые ошибки, появляющиеся в приложении:

Исполнителю требует открытого и доступного соединения. Текущее состояние соединения закрыто.

Я получаю доступ к DataContext на протяжении всего кода, используя свойство ниже, то есть часть класса DataContext:

/// <summary>
/// Returns the current datacontext for the thread or HttpContext, creating one if it does not exist.
/// </summary>
public static SharedDataContext Current
{
    get
    {
        return DataContextFactory.GetScopedDataContext<SharedDataContext>();
    }
}

Быть прерыванием, мне трудно закрепить это. Кто -нибудь знает, что я мог бы сделать не так, или у меня есть хорошее представление о том, как я смогу отладить эту проблему?


Обратите внимание, что это может быть дубликатом без ответа вопрос здесь

Это было полезно?

Решение

Теперь мы используем пользовательский DataContextFactory, который поддерживает DataContexts для переноса. Единственным другим основным изменением было использование [ThreadStatic] для свойств, а не вручную доступа через Thread.get/setData

Поскольку это изменение, проблема больше не появляется, и, поскольку никакие другие ответы не были выдвинуты, я предлагаю [Threadstatic] в качестве решения

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top