2011-09-18 5 views
2

У меня странная ситуация, когда я добавил ссылку наEnumAvailableSqlServers возвращает пустой список

Microsoft.SqlServer.Smo Microsoft.SqlServer.ConnectionInfo Microsoft.SqlServer.Management.Sdk.Sfc

и вызов SmoApplication.EnumAvailableSqlServers возвращает DataTable доступных серверов, когда он запускается на моей машине разработки.

Когда я развертываю машину своего коллеги, DataTable возвращается пустым.

Как ни странно, следующий

 Dim server As New Microsoft.SqlServer.Management.Smo.Server("localhost\sqlexpress") 
     For Each db In server.Databases 
      DoSomething(db.name) 
     Next 

ли вернуть установленные базы данных на обеих машинах.

Я использовал простейшее развертывание, то есть копирование каталога \ bin \ Release. Я подозревал, что на другой машине отсутствует сборка, но тот факт, что базы данных возвращаются на обеих машинах, противоречит этому, может быть.

Идеи?

+0

Вы должны объяснить немного больше, если на обеих машинах вы получаете ссылку на экземпляр SQL Express, запущенный в локальном хосте, это только говорит вам, что на обоих машинах установлен SQL Express, какой другой сервер или строка экземпляра вы используете использовать для запроса повторно, когда он не работает? Является ли SQL Server, который вы ищете в сети, и как его получить с машины, где он работает? –

ответ

3

У меня также была та же проблема. Я разрешил его, запустив службу SQL Server Browser. http://msdn.microsoft.com/en-us/library/ms165734(v=sql.90).aspx

+0

+1 это вполне возможно. Служба браузера SQL Server доступна для создания локального экземпляра «обнаруживаемый». Это также верно, если и приложение, которое вызывает 'EnumAvailableSqlServers()' и требуемую базу данных (здесь локальный экземпляр SQL Express), находится на том же компьютере. –

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