0 / 0 / 0
Регистрация: 11.08.2014
Сообщений: 37

WMI timeout не работает

05.10.2015, 15:41. Показов 2141. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет!
C#
1
2
3
ManagementScope scope = new ManagementScope("\\\" + hostName + "\\root\\cimv2");
                scope.Options.Timeout = TimeSpan.FromSeconds(4);
                scope.Connect();
Собственно зависает при попытке коннекта к глючному серверу. Вроде бы должно выкинуть по таймауту (4 секунды) но висит бесконечно. подскажите как избавиться от зависания?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.10.2015, 15:41
Ответы с готовыми решениями:

Не работает WMI.Как правильно сделать??
Здравствуйте, мне нужно получить в переменные loadsring1 и loadstring2 информацию о разрядности установленной ОС и о пути к системной...

Command.Timeout не работает!
Ребята, что делать с этим багом: при вызове процедуры из БД пишу ... command.CommandTimeout = 0; command.CommandType =...

[C#+WMI]Можно ли через WMI узнать температуру процессора и ядер?
Можно ли через WMI узнать температуру процессора и ядер? Щас лопачу сайты вожусь но русскоязычной документации по WMI нету :( А тем...

4
Администратор
Эксперт .NET
 Аватар для OwenGlendower
17909 / 14003 / 5347
Регистрация: 17.03.2014
Сообщений: 28,665
Записей в блоге: 1
06.10.2015, 01:56
blacksm, свойство ManagementOptions.Timeout не работает для метода Connect. Об этом ясно написано в документации:
This property has no effect on the ManagementScope.Connect method.
Я бы сделал свой метод для получения ManagementScope с таймаутом:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
ManagementScope GetManagementScope(string hostName, TimeSpan connectionTimeout)
{
    try
    {
        Task<ManagementScope> t = Task.Run(() => {
            var scope = new ManagementScope(@"" + hostName + @"\root\cimv2");
            scope.Connect();
            return scope;
        });
        if (t.Wait(connectionTimeout)) return t.Result;
    }
    catch (AggregateException ex)
    {
        ex.Flatten().Handle((innerEx) => {
            // The RPC server is unavailable (0x800706BA)
            if (innerEx.HResult == -2147023174) return true;
            return false;
        });
    }
    return null;
}
1
0 / 0 / 0
Регистрация: 11.08.2014
Сообщений: 37
06.10.2015, 06:03  [ТС]
Цитата Сообщение от OwenGlendower Посмотреть сообщение
Я бы сделал свой метод для получения ManagementScope с таймаутом:
да действительно, если такая реализация работает, то я сейчас тонны кода начну перелапачивать.
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6100 / 4956 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
06.10.2015, 21:33
OwenGlendower,
C#
1
2
3
4
catch (AggregateException ex)
{
    ex.Flatten().Handle(innerEx => innerEx.HResult == -2147023174);
}
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
17909 / 14003 / 5347
Регистрация: 17.03.2014
Сообщений: 28,665
Записей в блоге: 1
06.10.2015, 22:26
Psilon, это да. Я не уверен что проверки на HResult -2147023174 будет достаточно и поэтому не думал об упрощении кода.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.10.2015, 22:26
Помогаю со студенческими работами здесь

Socket timeout не работает
&lt;?php /** * Minecraft Server Status Query * @author Julian Spravil &lt;julian.spr@t-online.de&gt;...

Как работает TimeOut?
Всем привет! Комрадс помогите разобраться с таймаутами.. Работаю через idHTTP c одним php-скриптом Иногда от него не получаю ответ и...

Не работает Timeout на IdHTTP
Доброго дня! Пытаюсь при помощи IdHTTP сделать get запрос: idHTTP1.ConnectTimeout:=2000; idHTTP1.Get('http://site.ru'); Если сайт...

TrayIcon, Balloon timeout не работает
Нужно, чтобы баллон не пропадал до тех пор, пока на него не кликнут, но стандартное свойство Balloon timeout никак не влияет на...

Поставщик HiPerfCooker_v1 зарегистрирован в пространстве имен WMI Root\WMI с правами локальной системы
Поставщик HiPerfCooker_v1 зарегистрирован в пространстве имен WMI Root\WMI с правами локальной системы. Это может привести к нарушениям...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

Новые блоги и статьи
Мульти-тенантные БД с PostgreSQL Row Security
Codd 23.04.2025
Современные облачные сервисы и бизнес-приложения всё чаще обслуживают множество клиентов в рамках единой программной инфраструктуры. Эта архитектурная модель, известная как мульти-тенантность, стала. . .
Реализация конвейеров машинного обучения с Python и Scikit-learn
AI_Generated 23.04.2025
Мир данных вокруг нас растёт с каждым днём, и умение эффективно обрабатывать информацию стало необходимым навыком. Специалисты по машинному обучению ежедневно сталкиваются с задачами предобработки. . .
Контроллеры Kubernetes Ingress: Сравнительный анализ
Mr. Docker 23.04.2025
В Kubernetes управление входящим трафиком представляет собой одну из ключевых задач при построении масштабируемых и отказоустойчивых приложений. Ingress — это API-объект, который служит вратами. . .
Оптимизация кода Python с Cython и Numba
py-thonny 23.04.2025
Python прочно обосновался в топе языков программирования благодаря своей простоте и гибкости. Разработчики любят его за читабельность кода и богатую экосистему библиотек. Но у этой медали есть и. . .
Микросервис на Python с FastAPI и Docker
ArchitectMsa 23.04.2025
В эпоху облачных вычислений и растущей сложности программных продуктов классическая монолитная архитектура всё чаще уступает место новым подходам. Микросервисная архитектура становится фаворитом. . .
Создаем веб-приложение на Vue.js и Laravel
Reangularity 23.04.2025
Выбор правильного технологического стека определяет успех веб-проекта. Laravel и Vue. js формируют отличную комбинацию для создания современных приложений. Laravel — это PHP-фреймворк с элегантным. . .
Максимальная производительность C#: Span<T> и Memory<T>
stackOverflow 22.04.2025
Мир высоконагруженных приложений безжалостен к неэффективному коду. Каждая миллисекунда на счету, каждый выделенный байт памяти может стать причиной падения производительности. Разработчики на C#. . .
JWT аутентификация в Java
Javaican 21.04.2025
JWT (JSON Web Token) представляет собой открытый стандарт (RFC 7519), который определяет компактный и самодостаточный способ передачи информации между сторонами в виде JSON-объекта. Эта информация. . .
Спринты Agile: Планирование, выполнение, ревью и ретроспектива
EggHead 21.04.2025
Спринты — сердцевина Agile-методологии, позволяющая командам создавать работающий продукт итерационно, с постоянной проверкой гипотез и адаптацией к изменениям. В основе концепции спринтов лежит. . .
Очередные открытия мега простых чисел, сделанные добровольцами с помощью домашних компьютеров
Programma_Boinc 21.04.2025
Очередные открытия мега простых чисел, сделанные добровольцами с помощью домашних компьютеров. 3 марта 2025 года, в результате обобщенного поиска простых чисел Ферма в PrimeGrid был найден. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru