Ошибка TableAdapter только во время большого трафика
-
03-07-2019 - |
Вопрос
Я работаю над чужим проектом, который интенсивно использует tableAdapters. Сайт работает, но регулярно добавляет запись в журнал событий:
" ExecuteReader требует открытого и Доступное соединение. Связь текущее состояние подключается. & Quot; р>
Сайт не генерирует исключение, хотя, если нет большого трафика (5+ запросов в секунду), исключение остается тем же, указывая на эту строку кода:
this.Adapter.Fill(dataTable);
Трассировка стека: в System.Data.SqlClient.SqlConnection.GetOpenConnection (String метод) в System.Data.SqlClient.SqlConnection.ValidateConnectionForExecute (String метод, команда SqlCommand)
Как я могу остановить эту ошибку? Спасибо.
Оказывается, я получаю только половину изображения, ошибка, когда он выдает ошибку:
" Уже есть открытый DataReader связано с этой командой, которая должен быть закрыт первым. "
Решение
Я бы сказал, что вы, вероятно, используете одно и то же соединение для нескольких целей, и одна из них закрывается другим потоком.
Я бы порекомендовал добавить некоторую трассировку, чтобы выяснить, что происходит. Трудно отлаживать ошибки такого рода, которые вы получаете только в работе :(
Другие советы
Если кажется, что вы превысили допустимое количество открытых соединений с вашей базой данных. Это можно установить в строке подключения, задав значения для значений Min Pool Size и Max Pool Size. Я думаю, что по умолчанию 0 для минимального размера пула и 100 для максимального размера пула, но я не уверен. Р>
Попробуйте изменить их и посмотрите, поможет ли это.