На вашем месте я сделал бы:
Debug.Assert(val != null);
if ( val == null )
throw new exception();
Или избегать повторенной проверки условия
if ( val == null )
{
Debug.Assert(false,"breakpoint if val== null");
throw new exception();
}
Это могло быть связано с неправильным удалением соединений sql (возвратом в пул). Убедитесь, что вы вызываете SqlConnection.Dispose
.
Это могло произойти из-за того, что пул Количество подключений SQL исчерпано (это отличается от пула приложений). Вы можете проверить это, увеличив размер пула через строку подключения:
Integrated Security=SSPI;Initial Catalog=northwind;Max Pool Size=100;
Но более вероятно, что ваша база данных не успевает за поток входящих запросов. Это приводит к тому, что соединения ожидают завершения своего запроса. Добавление дополнительных подключений поможет против пакетных запросов, но не против устойчивого высокого трафика.
Здесь '