Недавно я столкнулся с проблемами соединения с базой данных с SQL Server на моей машине разработки.
System.InvalidOperationException: истекло время ожидания. Период ожидания истек до получения соединения из пула
Как я могу отслеживать пул соединений, чтобы выяснить, что происходит?
Дополнительная информация:
Мне не очень повезло с этим - я определенно не пропускаю связи. Каждое соединение находится внутри оператора using
.
Когда проблема все же возникает, у меня открывается окно системного монитора, и оно не отображается где-либо вблизи предела пула (который равен 100) - обычно около 2–5 соединений, поэтому я не думаю, что пул истощен, так что, возможно, это тайм-аут.
Тем не менее, я установил ConnectionTimeout
в 0, что, согласно документации, означает, что он должен ждать бесконечно, чтобы подключиться - но я этого не вижу.
Когда это происходит, это происходит довольно быстро - я работаю под отладчиком из VS2010 - запускаю новый экземпляр моего приложения - и это может произойти в течение секунды или двух после запуска - при запуске приложения есть несколько запросов, которые происходят. Реальный SQL Server, с которым я работаю, - это SQL Express 2008. Возможно, мне стоит попробовать запустить его на SQL Server 2008 и посмотреть, не вижу ли я другого поведения.
Есть еще идеи?