Sql Server 2005 доступен только в ASP.NET 1.1, когда я указываю протокол и порт

Моя компания в настоящее время переносит некоторые из своих действительно старых БД на сервер sql 2005. У некоторых старых приложений возникают проблемы с подключением к новому серверу. Строка подключения работает в Asp.NET 2.0, возможно, потому что она принимает tcp:1433 автоматически.

Я должен построить строку подключения, как это в ASP.NET 1.1 для его работы:

"Server=tcp:my.server.com,1433;..."

Без протокола и порта сбой соединения ("Исключение недействительного соединения")

TCP 1433 и UDP 1434 открыты на нашем брандмауэре. На SQL Server 2005 удаленный доступ включен, так же как и TCPIP, служба браузера SQL работает, я использую правильные учетные данные для входа.

Любые идеи, почему я не могу просто указать имя сервера без протокола и номер порта?

3 ответа

По умолчанию IIRC SQL Server 2005 находит любой старый доступный порт. На моем ноутбуке это означает порт 1212.

Чтобы принудительно подключить его к определенному порту, необходимо выбрать "Пуск" -> "Программы" -> "SQL Server 2005" -> "Инструменты настройки" -> "Диспетчер конфигурации SQL Server"

Отсюда вы должны перейти к Конфигурация сети SQL Server 2005-> Протоколы для (имя службы)-> Щелкните правой кнопкой мыши TCP/IP-> Свойства-> Выберите вкладку "IP-адрес" и установите для динамических портов TCP значение.

По какой-то причине "0" означает "Да, использовать динамические порты" и (т.е. без записи в поле) меню "Нет, я сам укажу"

Затем заполните поле TCP Port с помощью 1433.

Сделайте это на всех перечисленных адаптерах и перезапустите службу SQL.

Теперь вы можете проверить, действительно ли служба находится на правильном порту, выполнив следующие действия.

Пуск-> Выполнить-> cmd.exe

C:> netstat -ano

искать такую ​​запись

 local address         <stuff>           PID
 0.0.0.0:1433                            <some number>

Теперь сделайте C:> список задач

и найдите задачу с номером сверху. Эта задача должна называться что-то вроде sqlsrvr.exe.

Проверьте параметры "Конфигурация собственного клиента SQL" в "Диспетчере конфигурации SQL" на компьютере ASP.NET. Настройки соединения по умолчанию установлены там. Также попробуйте поиграться с конфигурацией MDAC:

http://msdn.microsoft.com/en-us/library/ms131035.aspx

Возможно, ваш SQL Server настроен для работы с несколькими протоколами, и он сначала пытается использовать другой протокол и не работает, возможно, по какой-то причине (учетная запись, в которой приложение работает, как в IIS). Просто предположение.

Другие вопросы по тегам