-->

SmoApplication.EnumAvailableSqlServers()如果SQLEXPRE

2019-09-19 01:18发布

我使用SMO找到network.But可用sqlservers在一台机器在哪里运行

应用它亘古不变的给默认实例名而是对所有其他机器它给人的

命名和默认实例西港岛线展示。

观察我的情景。

例如:机器名称:rkwrk3-VM-SR(本地计算机从那里我在其中运行的应用程序

SQLSERVER2008安装)

在这个其实我已经SQL2008作为默认实例和SQLEXPRESS(2005)命名实例...

但它表明只有一个实例rkwrk3-VM-SR \ SQLEXPRESS,它亘古不变的ahows rkwrk3-VM-SR。

和一些其他机器HR-2K3-TM(其中安装SQLSERVER2005)

此它显示HR-2K3-TM和HR-2K3-TM / SQLEXPRESS

我怎样才能解决这个问题。任何帮助WIL Greately赞赏。

提前致谢。

Answer 1:

实例发现协议(UDP的1434上)是由所服务的SQL Browser服务 ,默认被禁用(在一个名为事情记忆的Slammer ...)。

确保服务已启用,并开始在所有的机器。



Answer 2:

你可能会用另一种方法来获取服务器列表中有更好的运气。 或许,这种方法通过微软建议使用System.Data.Sql.SqlDataSourceEnumerator.Instance

枚举SQL Server实例
http://msdn.microsoft.com/en-us/library/a6t1z9x2.aspx

或者这种方法:

枚举SQL Server实例在C#中,使用ODBC
http://www.codeproject.com/KB/database/SubmitSQLInfoEnumerator.aspx



文章来源: SmoApplication.EnumAvailableSqlServers() does not list default instance if sqlexpress is in same machine where SQLSERVER2008 installed