Как перечислить экземпляры SQL Server

Я хотел бы, чтобы мое приложение возвращало экземпляры SQL Server 2008 R2 Developer / Express.

Я использую:

System.Data.DataTable lokalni_servery = Microsoft.SqlServer.Management.Smo.SmoApplication.EnumAvailableSqlServers();

foreach (System.Data.DataRow row in lokalni_servery.Rows)
{
    local_servers.Items.Add(row["Server"].ToString());
}

На ноутбуке моего друга с 32-разрядной версией SQL Server 2008 R2 Express он ничего не находит, но на моем ноутбуке с 64-разрядной версией SQL Server 2008 R2 Developer он находит его почти каждый раз. Мне нужно найти этот экземпляр SQL на обеих машинах.

Кто-нибудь знает, почему приложение так себя ведет?

Есть ли способ изменить метод, позволяющий обоим ноутбукам находить экземпляр?


person VilemRousi    schedule 12.04.2012    source источник
comment
полезный вопрос +1 - я не могу вам сказать много раз в прошлом, я почесал голову на этом, прежде чем узнать о службе браузера   -  person Aaron Anodide    schedule 13.04.2012


Ответы (1)


SmoApplication.EnumAvailableSqlServers перечисляет доступные экземпляры, что означает, что серверы должны быть запущены. Мало того, что они установлены.

Также SQL Server Browser Service должен быть запущен!

См. Практическое руководство. Запуск и остановка браузера SQL Server. Служба (SQL Server Express) на MSDN

person Olivier Jacot-Descombes    schedule 12.04.2012
comment
На серверах также должен быть включен TCP / IP, и должно быть обнаружено исключение в брандмауэре (ах). - person Erik Philips; 13.04.2012