У меня есть простой кусок кода в консольном приложении .NET, который пытается открыть соединение SQL к серверу:SqlConnection.Open() висит на Windows XP
using (SqlConnection connection = new SqlConnection("<my connection string>"))
{
connection.Open();
}
Он работает прекрасно на моем Windows, 7, но на моей другой машине под управлением Windows XP x64 вызов Open() зависает бесконечно.
Любые идеи, почему это происходит или как я могу диагностировать причину? Я запускаю программу из учетной записи администратора на обоих компьютерах.
EDIT: Хорошо, это проблема с файерволом. Я подключил свою машину Windows 7 к тому же интернет-соединению, что и компьютер под управлением Windows XP, и теперь он тоже зависает ... какие порты мне нужно открыть, чтобы пропускать SQL-трафик и как я могу их открыть?
EDIT: В случае, если кто интересуется, моя сеть админ блокирует исходящий трафик на порт 1433 из страха червя Slammer ...
Вы уверены, что это бесконечно? Вы должны получать исключение TimeOutException (по умолчанию 30 секунд). Кроме того, вы можете подключиться к экземпляру SQL Server с компьютера WinXP, используя что-то еще (например, SSMS Express)? Является ли экземпляр SQL Server именованным экземпляром? – bitxwise
Если это действительно заблокировано, я бы проверил брандмауэр Windows или другой продукт брандмауэра, чтобы узнать, разрешает ли он трафик на портах SQL – Sean
@bitxwise ранее сегодня я разрешил ему работать более 4 часов. У меня не было тайм-аута. – HighCommander4