Разработка простого приложения MVC5, которое подключается к SQL Server 2012 и получает некоторые данные.На домашней странице приложения есть JavaScript, который на
setInterval('myFunction()', 10000);
с помощью вызова AJAX связывает мою модель с последними изменениями в базе данных.Когда приложение развертывается на сервере, оно работает как положено в течение нескольких дней (без ошибок в журнале), но во время разработки, когда приложение размещено в IISExpress, я получаю сообщение об ошибке:
Истекло время ожидания.Время ожидания истекло до получения соединения из пула.Это могло произойти из-за того, что все пулы подключений использовались, и был достигнут максимальный размер пула.
Я гуглил проблему в течение нескольких часов, и все указывает на утечку соединения SQL или DataReader, которые не закрывались должным образом,но с помощью простого оператора select я вижу только одно или два соединения, которые открыты одновременно (и они своевременно освобождаются)
DECLARE @sp_who2 TABLE(SPID INT,Status VARCHAR(255),
[Login] VARCHAR(255),HostName VARCHAR(255),
BlkBy VARCHAR(255),DBName VARCHAR(255),
Command VARCHAR(255),CPUTime INT,
DiskIO INT,LastBatch VARCHAR(255),
ProgramName VARCHAR(255),SPID2 INT,
REQUESTID INT)
INSERT INTO @sp_who2 EXEC sp_who2
SELECT *
FROM @sp_who2
WHERE ProgramName = 'myProgram'
ORDER BY DBName ASC
Я несколько раз проверял код и вижу, что соединения и устройства чтения везде закрываются и располагаются должным образом.Что еще может быть не так?Или это просто некоторые ограничения в IIS Express ???
ОБНОВЛЕНИЕ Моя строка подключения выглядит следующим образом:
connectionString="Data Source=MyDBServer;Database=myDatabase;Trusted_Connection=Yes;Max Pool Size=100; Connection Timeout=30;Application Name=myApplication"