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" />
这不是中等信任/完全信任问题。您需要以管理员或其他特权用户的身份运行,才能在计算机上创建性能计数器。参见http://msdn.microsoft.com/en-us/library/system.diagnostics.performancecountercategory(v=vs.110).aspx:
的备注部分强烈建议创建新的性能计数器类别在安装应用程序期间创建,而不是在执行应用程序。
基本上,如果你的应用程序有一个安装程序,你会调用PerformanceCounterCategory。在安装时创建。如果您的应用程序没有安装程序,您可以使用此代码编写.exe,并从提升的命令提示符运行它。
然后,作为MVC应用程序正常执行的一部分,您可以利用这个性能计数器已经存在的事实,通过使用标准的PerformanceCounter类打开计数器并向其写入值。