SQL Server 2016列表实例

时间:2017-01-02 09:27:30

标签: smo localserver sql-server-2016-express

我在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;
    }
}

1 个答案:

答案 0 :(得分:0)

我有同样的问题。这些步骤对我有所帮助。

Microsoft.SqlServer.ConnectionInfo的引用增加到版本13.x.x.x(通过添加引用 - &gt;并在Extensions中查找更高版本)。 Microsoft.SqlServer.Management.Sdk.SfcMicrosoft.SqlServer.Smo的步骤相同。

我没有找到Microsoft.SqlServer.SqlWmiManagement的增加版本。所以我删除了对这个程序集的引用,并通过浏览我创建了C:\Program Files\Microsoft SQL Server\130\SDK\Assemblies\Microsoft.SqlServer.SqlWmiManagement.dll

就是这样。