Я создаю утилиту проверки, которая проверяет различные части приложения, чтобы убедиться, что они настроены правильно. Я должен проверить, что запись DSN в файле Web.config является функциональным DSN и что DSN указывает на правильный сервер SQL и базу данных.
В настоящее время вы можете запустить утилиту в одном из двух режимов, локальном или удаленном. Моя проблема возникает, когда я пытаюсь проверить удаленный системный DSN на моем локальном компьютере. Я знаю, почему это не работает, у меня нет того же DSN на моем локальном компьютере. Поэтому мне нужно выяснить, как получить информацию о соединении DSN с удаленного компьютера, к которому у меня есть административный доступ, или заставить удаленный компьютер проверить его для меня.
Есть предложения? Спасибо!
EDIT
Очевидно, что информация о 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();