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