2017-01-02 19 views
0

ローカルサーバーを取得するために私のWindowsアプリケーションで以下のコードを使用しています。SQL Server 2012を使用していてもエラーなしで動作していましたが、SQL Server 2016をダウンロードしたとき、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; 
    } 
} 
+0

私はあなたがSQL Server 2016インストールからのDLLを必要とするかもしれないと思います。 –

+0

私はすでにそれらを追加しました。 –

+0

'String.IsNullOrEmpty(instance.Name)?インスタンス。親。名前:インスタンス。親。名前 '。あなたはそれがあなたが書いたかったものだと確信していますか? –

答えて

0

私は同じ問題を抱えていました。これらのステップは私を助けました。

Microsoft.SqlServer.ConnectionInfoへの参照は、(参照の追加 - >拡張機能の上位バージョンの検索を介して)バージョン13.x.x.xに増加しました。 Microsoft.SqlServer.Management.Sdk.SfcMicrosoft.SqlServer.Smoについては同じ手順です。

Microsoft.SqlServer.SqlWmiManagementの拡張バージョンが見つかりませんでした。そこで私はこのアセンブリへの参照を削除し、参照によって私はC:\Program Files\Microsoft SQL Server\130\SDK\Assemblies\Microsoft.SqlServer.SqlWmiManagement.dllを設立しました。

すべてです。

関連する問題