我正在使用SMO来查找网络的可用sqlservers。但是在我运行的一台机器上
应用程序它不提供默认实例名称,但是对于所有其他计算机,它提供
命名和默认实例将显示。
观察我的情景。
例如:机器名称:rkwrk3-vm-sr(从我运行app的本地机器
安装sqlserver2008)
在这个实际上我有sql2008默认实例和sqlexpress(2005)作为命名实例...
但是它只显示了一个实例rkwrk3-vm-sr \ sqlexpress而且它没有显示rkwrk3-vm-sr。
和其他一些机器Hr-2k3-tm(其中安装了sqlserver2005)
为此显示Hr-2k3-tm和Hr-2k3-tm / sqlexpress
我该如何解决这个问题。任何帮助都会受到高度赞赏。
先谢谢。
答案 0 :(得分:1)
实例发现协议(1434上的UDP)由SQL Browser service提供,默认情况下是禁用的(在名为Slammer的内存中...)。
确保在所有计算机上启用并启动该服务。
答案 1 :(得分:0)
使用备用方法获取服务器列表可能会更好。也许Microsoft建议使用System.Data.Sql.SqlDataSourceEnumerator.Instance
枚举SQL Server实例
http://msdn.microsoft.com/en-us/library/a6t1z9x2.aspx
或者这个方法:
在C#中使用ODBC枚举SQL Server实例
http://www.codeproject.com/KB/database/SubmitSQLInfoEnumerator.aspx