1

ワークステーションに SQL Server 2005 Management Studio をインストールしました。その後、SQL Server 2008 ワークステーション ツールをインストールし、SQL Server 2005 ツールを削除しました。現在、管理スタジオで登録済みのサーバーを反復処理する ac# プログラムを作成しています。問題は、2008 の登録済みサーバー リストではなく、2005 ツールの古いリスト (現在はアンインストールされています) を反復処理していることです。

アセンブリ参照の問題かもしれないと思ったので、SMO アセンブリ参照が新しいツールを指していることを確認しました。私は使っている:

  • Microsoft.SqlServer.ConnectionInfo
  • Microsoft.SqlServer.Management.Sdk.Sfc
  • Microsoft.SqlServer.Smo
  • Microsoft.SqlServer.SqlEnum

アセンブリが 10.0 バージョンであることを確認しました。

仕事をする私のC#コードスニペットは次のとおりです。

using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.SqlServer.Management.Smo;
using Microsoft.SqlServer.Management.Common;
using Microsoft.SqlServer.Management.Smo.RegisteredServers;

    public static void DiscoverServers()
    {
        RegisteredServer[] rsvrs = SqlServerRegistrations.EnumRegisteredServers();
        foreach (RegisteredServer rs in rsvrs)
        {
            Console.WriteLine(rs.Parent.Name + ", " + rs.ServerInstance);

        }
    }

これを修正する方法についてのアイデアはありますか? 間違った SMO コードを使用しているだけですか?

乾杯、マーク。

4

1 に答える 1

0

あなたのコードは完全に問題ありません。私の推測では、問題は参照用に公開されていない SQL サーバーにあると思います。「SQL Server Browser」Windows サービスが実行されていること、およびサーバー ブラウズが SQL サーバー構成で有効になっていることを確認します。

于 2009-09-16T15:47:35.857 に答える