LINQ to SQL - с этой командой уже связано средство чтения открытых данных, которое должно быть закрыто первым - PullRequest
1 голос
/ 14 августа 2010

Недавно я реализовал Linq to SQL в статическом классе в моем проекте ASP.Net, который является служебным классом для получения некоторой информации о загрузке сайта.Когда я использовал статический текст данных linqtosql, я получил вышеуказанную ошибку только в реальной среде, но никогда не сталкивался с этой проблемой на сайтах UAT или QA.(это означает, что эта проблема возникает только при большой загрузке).

, поэтому я погуглил и нашел эту статью здесь .так что я сделал, я сделал мои переменные datacontext уровня страницы и передавал их статическим методам каждый раз, когда я вызываю их.что я сделал правильно, это решит эту проблему? /

1 Ответ

2 голосов
/ 14 августа 2010

В ASP.Net каждый запрос является отдельным потоком. Поэтому, если вы используете статический ресурс, вы должны обрабатывать параллелизм. В вашем случае кажется, что два устройства чтения данных используют одно и то же соединение. Поскольку ваш класс статичен, когда сервер находится под большой нагрузкой, может случиться так, что два запроса будут использовать один и тот же текстовый текст данных одновременно.

Если вам действительно нужен статический ресурс, вы должны использовать оператор lock , чтобы гарантировать, что только один запрос одновременно обращается к ресурсу.

...