У меня странная проблема, которую я не до конца понимаю.Основным симптомом является то, что когда я дважды щелкаю ссылку (которая указывает на действие контроллера) в моем приложении MVC, соединение с сервером базы данных разрывается, и я получаю ошибку:
Выполнение команды требует открытияи доступное соединение.Текущее состояние соединения нарушено.
Если я пройду, начиная с точки останова в верхней части действия контроллера, он уйдет на пару строк вниз, а затем вернется к точке останова.Почему-то первый запрос не выполняется полностью до того, как туда попадет второй, и каким-то образом мое соединение с базой данных разрывается, когда он попадает в любой запрос.Каждый раз, когда это происходит, мне приходится перезапускать сервер приложений.
Сначала это происходило с перебоями, но двойной щелчок ссылок, похоже, воспроизводит его каждый раз.Это случается с кем-то еще?Что мне здесь не хватает?
Спасибо,
ржавый
Обновление:
A.) Я неправильно пометил это как Linq-to-sql, когда мыфактически используют Linq-to-entity.B.) Объект подключения определяется как переменная-член контроллера:
namespace C2S.Controllers
{
public class ArtifactController : Controller
{
private c2sEntities _entities = new c2sEntities();
...
Я заметил, что в некоторых руководствах asp.net они объявляют переменную в том же месте, но имеют отдельный конструктор дляконтроллер, где инициализируется объект db.Имеет ли это какое-то значение?
C.) Проблема заключается не только в двойном щелчке, как описано выше.Соединение разрывается в другое, казалось бы, случайное время;Я не могу воспроизвести ошибку последовательно (даже двойной щелчок не всегда нарушает ее).Перезапуск веб-сайта обычно исправляет это, хотя иногда мне приходится перезагружать хост-компьютер.После резервного копирования повторение одной и той же последовательности действий обычно не воспроизводит ту же ошибку!
Может быть, я чего-то не понимаю в настройке моих классов linq-to-entity или природы соединения с базой данных,У кого-нибудь есть мысли?Я действительно даже не знаю, как исследовать это!
Еще раз спасибо
Расти