Вопрос или проблема
Я столкнулся с проблемой (0xC0000BB8), из-за которой не могу активировать правило после его настройки в DebugDiag. Моя цель – использовать этот инструмент для генерации дампа из моего приложения ASP.NET MVC, работающего на IIS, когда происходит высокая загрузка процессора или памяти.
Полная ошибка: “Ошибка при активации правила PerfTrigger через службу DbgSvc. Не удалось создать Perf Trigger для указанного пути счетчика. PdhStatus – 0xC0000BB8”.
В настоящее время я использую RDP для доступа к серверу облачного провайдера, хост – Windows Server 2022 Datacenter.
Попытки исправить проблему:
- Проверка, работает ли служба Debug Diagnostic (работает);
- Проверка прав Windows (как на локальных политиках, так и при запуске приложения);
- Настройка Монитора производительности для отображения того же Счетчика производительности (это сработало).
Я также проверил, и когда я выбираю Счетчик производительности в настройках правила DebugDiag, он устанавливает тот же путь, что и Монитор производительности.
Я провел некоторые исследования, и это может иметь связь с языком системы (в данный момент Windows на португальском, а DebugDiag – это инструмент только на английском). Похоже, что у других людей были проблемы с доступом к путям счетчиков производительности в других сценариях, и это было решено путем изменения языка системы, но это вне моих возможностей, поэтому я ищу возможные решения и новые вещи, которые можно попробовать.
Ответ или решение
Ваша проблема с ошибкой 0xC0000BB8 при попытке активировать правило в DebugDiag, вероятно, связана с доступом к указанным путям производительности. Несмотря на то, что вы уже предприняли несколько шагов для устранения проблемы, есть несколько дополнительных шагов, которые вы можете попробовать.
-
Проверка контекста выполнения: Убедитесь, что DebugDiag запущен с необходимыми правами. Хотя вы проверили разрешения, попробуйте запустить DebugDiag от имени администратора, чтобы исключить проблемы с правами доступа к производственным счетчикам.
-
Настройка пути к производственным счетчикам: Убедитесь, что путь к производственным счетчикам не содержит специальных символов или пробелов. Иногда это может вызывать ошибки при их вызове. Попробуйте использовать стандартные счетчики, такие как
\Process(имя_процесса)\% Processor Time
или\Process(имя_процесса)\Private Bytes
. -
Проверка системных языковых настроек: Вы правы в том, что языковые настройки могут влиять на доступ к счетчикам производительности. В качестве временного решения, попробуйте изменить язык интерфейса пользователя на английский, если это возможно, или создайте отдельного пользователя с английскими настройками. Это, конечно, не идеальный вариант, но он мог бы помочь проверить, действительно ли проблема в языковых настройках.
-
Перезагрузка Debug Diagnostics Service: Иногда помогает простая перезагрузка сервиса Debug Diagnostic. Попробуйте остановить и снова запустить сервис через консоль администратора, используя команды:
net stop DebugDiag net start DebugDiag
-
Использование системного журнала событий: Проверьте журналы событий Windows на наличие ошибок, которые могли бы дать более точные указания на источник проблемы. Это можно сделать через "Просмотр событий" (Event Viewer).
- Попробуйте другой инструмент для анализа производительности: Если вышеуказанные шаги не решают проблему, можно рассмотреть возможность использования других инструментов для анализа производительности и сбора дампов, таких как PerfView или Windows Performance Recorder (WPR).
Если после выполнения всех этих шагов проблема останется, возможно, стоит обратиться к поддержке Microsoft или на специализированные форумы, где другие пользователи также сталкивались с аналогичными проблемами.