3

在我编写的应用程序中,我们在应用程序启动时删除并重新创建性能计数器。

从控制台运行此应用程序时,应用程序会删除并重新创建计数器和计数器类别。

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

     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 行上。我希望这与权限有关,但在生产中,我们必须将服务作为本地系统运行,我真的需要在代码中修复它而不提升用户帐户

谢谢

4

1 回答 1

2

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

于 2009-06-25T09:36:49.150 回答