アプリケーションのさまざまな部分をチェックして、正しく構成されていることを確認する検証ユーティリティを作成しています。私がチェックする必要があることの1つは、Web.configファイルのDSNエントリが機能的なDSNであり、DSNが正しいSQLサーバーとデータベースを指していることです。
現在、ユーティリティはローカルまたはリモートの2つのモードのいずれかで実行できます。ローカルコンピューターでリモートシステムDSNを検証しようとすると、問題が発生します。私はそれが機能しない理由を知っています、私は私のローカルコンピュータに同じDSNを持っていません。したがって、私が理解する必要があるのは、管理アクセス権を持つリモートマシンからDSN接続情報を取得する方法、またはリモートマシンにそれを確認させる方法です。
助言がありますか?ありがとう!
編集
だから、DSN情報もレジストリに保存されているようです!
oRegConn = new ConnectionOptions();
oRegConn.Username = username;
oRegConn.Password = password;
scope = new ManagementScope(@"//" + servername + @"/root/default", oRegConn);
registry = new ManagementClass(scope, new ManagementPath("StdRegProv"), null);
inParams = registry.GetMethodParameters("GetStringValue");
inParams["sSubKeyName"] = "SOFTWARE\\ODBC\\ODBC.INI\\ODBC Data Sources\\" +
dsnName;
inParams["sValueName"] = "Server";
outParams = registry.InvokeMethod("GetStringValue", inParams, null);
server = outParams["sValue"].ToString();