пятница, ноября 30, 2012

SQL фокус

Несколько часов сражался с проблемой - не коннектится программка, работающая с SQL Server 2008 (10.50.4000), к моему локальному SQL Server 2012 (11.0.3000): рассказывает про “error: 26 - Error Locating Server/Instance Specified”. Google советует покопаться в настройках сети, SQL Server, а также проверить, существует ли что-то на свете вообще...

Все другие программы (Sharepoint'ы из виртуалок, например) нормально работают, а эта локальная программка - никак не желает (соединение в ней организовано через использование ConnectionString).
Стали уже закрадываться мысли, не поставить ли 2008-й сервер...

До установки решил порыться в кодах программы (она не моя и, в принципе, работает – чего же чужие коды изучать…) и обнаружилось, что строка соединения передаётся в класс, наследующий System.Data.Linq.DataContext, в конструкторе которого и наблюдается падение с “ошибкой 26”. Мда… Thumbs down

К счастью, у класса оказался другой конструктор, принимающий заранее открытое соединение, которое и было создано нехитрым кодом:
var connection = new SqlConnection(CONNECTION_String);
connection.Open();

Подсунул эту connection классу вместо CONNECTION_String - программка заработала.
Фокус-покус, едрёныть... Secret telling smile

Кстати, похожую историю можно наблюдать при соединении с SQL Server 2012 по “строке соединения” в SQL-манагере:

image

При  вводе тех же данных (имя/пароль) в поля формы “Вход” сервер открывается нормально. Steaming mad

Technorati Tags:
Отправить комментарий