2012-04-12 2 views
1

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

I'm с помощью:

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()); 
} 

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

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

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

+0

полезный вопрос +1 - я не могу сказать вам Хома много раз в прошлом я поцарапал свою голову на это, прежде чем узнать о службе браузера –

+1

Похожих вопросов: [EnumAvailableSqlServers возвращает пустой список] (http://stackoverflow.com/questions/7460567/enumavailablesqlservers-returns-empty-list) или, возможно, [SqlDataSourceEnumerator.Instance.GetDataSources() не находит локальный экземпляр SQL Server 2008] (http://stackoverflow.com/questions/6824188/sqldatasourceenumerator-instance-getdatasources-does-not-locate-local-sql-serv). –

ответ

0

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

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

См How to: Start and Stop the SQL Server Browser Service (SQL Server Express) на MSDN

+2

Серверы также должны иметь протокол TCP/IP, а также исключение в брандмауэре. –

Смежные вопросы