PerformanceCounterCategory

PerformanceCounterCategory

在我编写的应用程序中,随着应用程序旋转,我们将删除并重新创建性能计数器。

从控制台运行此程序时,应用程序将删除并重新创建计数器,并且计数器类别也可以。

当我们从某项服务运行时,该应用会按预期删除计数器类别,但是在创建新类别时,它会挂起直到服务超时

     if (PerformanceCounterCategory.Exists(CATEGORY_NAME))
     {
        PerformanceCounterCategory.Delete(CATEGORY_NAME);
     }


可以,但是在这种方法后挂起

      private PerformanceCounterCategory RecreateTheCategory()
  {
     PerformanceCounterCategory category = null;
     if (!PerformanceCounterCategory.Exists(CATEGORY_NAME))
     {
        category = PerformanceCounterCategory.Create(CATEGORY_NAME, CATEGORY_HELP,
                                                     PerformanceCounterCategoryType.SingleInstance,
                                                     counterCreationDataCollection);
     }
     return category;
  }


在.Exists行上。我希望这与权限有关,但是在生产中,我们必须将服务作为本地系统运行,因此我确实需要在代码中修复它而又不增加用户帐户

谢谢

最佳答案

我找到了解决方案,我需要在OnStart()方法中建立IOC,而无需构造函数

10-02 01:52