ASP.. NET MVC:在创建性能计数器时拒绝请求的注册表访问

本文关键字:请求 拒绝 注册表 访问 性能计数器 MVC NET 创建 ASP | 更新日期: 2023-09-27 17:53:14

我正在尝试为我的MVC动作创建性能计数器,并收到一个SecurityException,表示注册表访问被拒绝。我在我的网页中添加了完全信任。

配置文件,但这不能解决问题。
PerformanceCounterCategory performancecountercategory = null;
if (!PerformanceCounterCategory.Exists(categoryname))
{
    performancecountercategory = PerformanceCounterCategory.Create(categoryname, "Latency counters for the Media Gateway", PerformanceCounterCategoryType.SingleInstance, countercreationdata);
}
else
{
    performancecountercategory = new PerformanceCounterCategory(Constants.PerformanceCounterCategory);
}

  <system.web>
    <trust level="Full"></trust>
    <compilation targetFramework="4.5" debug="true" />
    <httpRuntime targetFramework="4.5" />

ASP.. NET MVC:在创建性能计数器时拒绝请求的注册表访问

这不是中等信任/完全信任问题。您需要以管理员或其他特权用户的身份运行,才能在计算机上创建性能计数器。参见http://msdn.microsoft.com/en-us/library/system.diagnostics.performancecountercategory(v=vs.110).aspx:

的备注部分

强烈建议创建新的性能计数器类别在安装应用程序期间创建,而不是在执行应用程序。

基本上,如果你的应用程序有一个安装程序,你会调用PerformanceCounterCategory。在安装时创建。如果您的应用程序没有安装程序,您可以使用此代码编写.exe,并从提升的命令提示符运行它。

然后,作为MVC应用程序正常执行的一部分,您可以利用这个性能计数器已经存在的事实,通过使用标准的PerformanceCounter类打开计数器并向其写入值。