gpt4 book ai didi

c# - SmoApplication.EnumAvailableSqlServers 不检索本地服务器实例

转载 作者:太空宇宙 更新时间:2023-11-03 11:05:39 25 4
gpt4 key购买 nike

我在我的本地系统上使用 windows-7 Sp-1 和 Sql server 2012。以及服务器系统上的 Windows Server 2008 R2 Sp-1 和 Sql server 2012。当我使用

代码

SmoApplication.EnumAvailableSqlServers();

当时它只显示网络实例。它不显示任何本地实例。当我使用

代码

SmoApplication.EnumAvailableSqlServers(true);

然后它返回空白数据表。在这种情况下该怎么办。

最佳答案

我在不同的电脑上时不时遇到同样的问题,我还没有找到任何解释。看起来这个问题在某种程度上与本地机器上的防火墙、UDP 数据包和 SQL Server Browser 服务有关(AFAIK,SmoApplication.EnumAvailableSqlServers 使用 SQL Server Browser 甚至用于本地实例,而 SQL Server Browser 反过来,使用广播数据包来发现 SQL Server 服务。

我实现的解决方法使用 ManagedComputer来自 SMO 的类(class):

    private const String defaultMsSqlInstanceName = "MSSQLSERVER";

public String[] GetLocalSqlServerInstances()
{
return new ManagedComputer()
.ServerInstances
.Cast<ServerInstance>()
.Select(instance => String.IsNullOrEmpty(instance.Name) || instance.Name == defaultMsSqlInstanceName ?
instance.Parent.Name : Path.Combine(instance.Parent.Name, instance.Name))
.ToArray();
}

此外,它比 SmoApplication.EnumAvailableSqlServers(true) 运行得更快。
希望这会有所帮助。

关于c# - SmoApplication.EnumAvailableSqlServers 不检索本地服务器实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15967817/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com