我在我的 Windows 应用程序中使用下面的代码来获取本地服务器,当我使用 SQL Server 2012 时它可以正常工作,但是当我下载 SQL Server 2016 时,我得到了异常:
异常:尝试管理服务时在 SMO 中发生异常。内部异常:未能为此请求检索数据。
编码:
public List<string> findLocalServers()
{
var servers = new List<string>();
try
{
var serverCollection = new ManagedComputer().ServerInstances.Cast<ServerInstance>().Select(instance => String.IsNullOrEmpty(instance.Name) ?
instance.Parent.Name : instance.Parent.Name)
.ToArray();
foreach (var server in serverCollection.Where(server => !servers.Contains(server)))
{
servers.Add(server);
}
return servers;
}
catch (Exception ex)
{
return null;
}
}