在我编写的应用程序中,随着应用程序旋转,我们将删除并重新创建性能计数器。
从控制台运行此程序时,应用程序将删除并重新创建计数器,并且计数器类别也可以。
当我们从某项服务运行时,该应用会按预期删除计数器类别,但是在创建新类别时,它会挂起直到服务超时
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,而无需构造函数