Почему многие локальные порты были открыты в простом соединении sql? - PullRequest
1 голос
/ 09 июня 2011

У меня есть приложение, которое просто открывает SqlConnection для удаленного хоста.Мой код выглядит примерно так:

SqlConnection sc = new SqlConnection();
sc.ConnectionString = sConnectionString;
sc.Open();

Я запустил приложение, когда мой инструмент мониторинга сети открыт.Я заметил, что было открыто 4 локальных порта, которые взаимодействуют с портом 1433 удаленного хоста.Я ожидаю, что откроется только 1 порт.Почему это так?

Ответы [ 2 ]

1 голос
/ 09 июня 2011

Если у вас есть разрешения для просмотра открытых соединений с базой данных на удаленном сервере баз данных, сравните это с соединениями tcp / ip, открытыми на машине, на которой размещено приложение.

Если количество открытых соединений в базе данныхсопоставление сервера с соответствующими соединениями tcp / ip, вы можете быть уверены, что открыто несколько одновременных соединений, и выполнить дальнейшую отладку.

В SQL Server 2008 выполните sp_who2 или откройте монитор активности.Вы должны быть в состоянии идентифицировать источники соединения из результатов.В хосте приложения используйте netstat -n или другой инструмент мониторинга сети.

См. Также

Слишком много соединений с SQL 2005

1 голос
/ 09 июня 2011

Я предполагаю, что вы не закрыли sqlconnection и он был открыт постоянно, попробуйте перезапустить сервер и (попробуйте перезагрузить ваш компьютер). И используйте этот код после выполнения своей работы. Это случилось со мной раньше, и это сработало для меня.

SqlConnection sc = new SqlConnection();
sc.ConnectionString = sConnectionString;
sc.Open();
// do you coding here 
// complete all the operations related to this connection 
//close the connection 
sc.Close();
...