none
Класс SInstance не найден RRS feed

  • Вопрос

  • Помогите плиз решить такую проблемку. Надо найти имя инстанции SQL Server 2008. Для этого я использую класс SInstance из WMI Provider for Configuration Management Classes. Функция выглядит следующим образом:

            private static void GetSqlServerInstance()
            {
                try
                {
                    var scope = new ManagementScope(@"\\.\root\Microsoft\SqlServer\ComputerManagement10");
                    var SqlInstance = new ManagementClass(scope, new ManagementPath("SInstance"), null);
                    SqlInstance.Get();

                    var instansceName = SqlInstance.GetPropertyValue("InstanceName");
                    if(instansceName != null)
                        Console.WriteLine("InstanceName = {0}", instansceName.ToString());

                }
                catch (Exception ex)
                {
                    Console.Out.WriteLine(ex.Message);
                }
            }


    Проблема в том, что все время получаю исключение "Not found ".  Полная бессмыслица, так как инстанция существует и работает как надо, я могу данные считывать и сохранять.  Другая функция обращается к классу и я могу получать информацию о DisplayName, ServiceName и т.д.

            private static void GetSqlServerService()
            {
                var scope = new ManagementScope(@"\\.\root\Microsoft\SqlServer\ComputerManagement10");
                var sqlService = new ManagementClass(scope, new ManagementPath("SqlService"), null);
                sqlService.Get();

                foreach (ManagementObject instance in sqlService.GetInstances())
                {
                    instance.Get();
                    var propertiesToRead = new[] { "DisplayName", "ServiceName", "SQLServiceType", "ConnectionString" };
                    foreach (var propertyToRead in propertiesToRead)
                    {
                        Console.WriteLine("Property {0} = {1}", propertyToRead, instance.GetPropertyValue(propertyToRead));
                    }
                    
                }
            }

    Буду благодарен за помощь

    • Перемещено PashaPashModerator 15 октября 2010 г. 17:31 (От:Языки программирования)
    14 октября 2010 г. 8:01

Ответы

  • Гы. Класс SIntance больше не существует, хотя в документации стоит до сих пор. Никому нельзя верить, тем более Microsoft. Рекомендуют использовать класс ServerSettings.
    • Помечено в качестве ответа kyy8080 14 октября 2010 г. 10:19
    14 октября 2010 г. 10:17

Все ответы