Ошибка TableAdapter только во время большого трафика - PullRequest
0 голосов
/ 04 марта 2009

Я работаю над чужим проектом, который интенсивно использует tableAdapters. Сайт работает, но регулярно добавляет запись в журнал событий:

"ExecuteReader требует открытого и Доступное соединение. Связь текущее состояние подключается. «

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

this.Adapter.Fill(dataTable);

Трассировка стека: при System.Data.SqlClient.SqlConnection.GetOpenConnection (String метод) в System.Data.SqlClient.SqlConnection.ValidateConnectionForExecute (String метод, команда SqlCommand)

Как я могу остановить эту ошибку? Спасибо.

Оказывается, я получаю только половину изображения, ошибка, когда он выдаст ошибку:

"Уже есть открытый DataReader связано с этой командой, которая сначала должен быть закрыт. "

Ответы [ 2 ]

0 голосов
/ 04 марта 2009

Если кажется, что вы превысили допустимое количество открытых соединений с вашей базой данных. Это можно установить в строке подключения, задав значения для значений Min Pool Size и Max Pool Size. Я думаю, что по умолчанию 0 для минимального размера пула и 100 для максимального размера пула, но я не уверен.

Попробуйте изменить их и посмотрите, поможет ли это.

0 голосов
/ 04 марта 2009

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

Я бы рекомендовал добавить немного трассировки, чтобы выяснить, что происходит. Трудно отлаживать ошибки такого рода, которые вы получаете только в работе :(

...