2013-12-24 1 views
0

У меня есть APS.Net MVC с SQL Server Backend, размещенный на IIS7. У меня возникло проблемное соединение, которое не было закрыто со следующим сообщением об исключении:Не закрытое соединение предотвращает подключение к базе данных

«Уже есть открытый файл данных, связанный с этой командой, который должен быть закрыт первым».

Когда я обновляю страницу, приложение продолжает работать без проблем. После некоторого времени появляется следующее исключение, но не всегда:

Для использования в ExcuteReader требуется открытое и доступное соединение, текущее состояние соединения открыто.

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

мой вопрос: имеет ли первое сообщение об исключении отношение ко второму сообщению, не позволяя пользователям регистрироваться на сервере.

ответ

0

Попробуйте добавить MultipleActiveResultSets=true в строку подключения . Ниже приведен пример:

<add name="MyConnection" connectionString="Data Source=192.168.1.0;Catalog=MyDb;Persist Security Info=True;Multipleactiveresultsets=True;User ID=xxx;Password=xxx" providerName="System.Data.SqlClient" /> 
+0

Спасибо за ответ, не могли бы вы объяснить, как это поможет в моем случае. как настройка MultipleActiveResultSets = true решит проблему – user3002167

+0

Из сообщения об ошибке, которое вы указали, похоже, что вы выполняете запрос, итерации по результатам из другого запроса. Одна вещь, которая может вызвать это, - это ленивая загрузка, вызванная при повторении результатов какого-либо запроса. Если это проблема, можно решить, разрешив MARS в вашей строке подключения. – Lin

+0

Сообщите мне, если это сработает для вас. – Lin

Смежные вопросы