[EnterpriseLibrary]为什么拒绝ASPNET对性能数据进行访问
2005-06-27 13:05
316 查看
[EntLib]为什么拒绝ASPNET对性能数据进行访问
编写者 | 日期 | 关键词 |
郑昀@ultrapower | 2005-6-27 | ”Enterprise Library” ASP.NET PerfLib WMI |
现象
浏览我们的ASP.NET站点,得到了这样的页面错误提示:拒绝对注册表项的访问。[/b][/b]
背景:[/b][/b]
在一台很干净的Windows 2000服务器上,我们顺次安装了
dotnetfx.exe和NDP1.1sp1-KB867460-X86.exe,
之后运行EnterpriseLibraryJan2005.exe安装Microsoft Enterprise Library。
之后部署我们的ASP.NET站点在这台机器上,它的特殊之处是加载页面时需要实例化[/b]Microsoft Enterprise Library[/b]的[/b]Caching Application Block[/b]。
在事件察看器中找到相应的错误警告:
错误: |
事件类型: 错误 事件来源: Perflib 事件种类: 无 事件 ID: 1000 日期: 2005-6-27 描述: 拒绝 ASPNET 从 C:\WINNT\Microsoft.NET\Framework\v1.1.4322\aspnet_wp.exe 对性能数据进行访问 |
临时的解决办法
由于在现场环境急于演示ASP.NET站点,所以临时把ASPNET账号加入Administrators组中。这样页面就可以正常加载了。然后再从Administrators组去掉ASPNET账号,页面也继续可以正常加载。
原理
Windows 2000[/b]限制了只有[/b]Administrators[/b]组才可以访问[/b]WMI[/b]数据。[/b]而Microsoft Enterprise Library[/b]需要访问WMI记录的性能数据,这个可以通过我的另一篇文章《[C#]服务为何会依赖于WMI Performance Adapter.doc》/article/4595550.html中的一段话了解一二:Microsoft.Practices.EnterpriseLibrary.Caching[/i]工程中,有对“[/i]System.Management.Instrumentation[/i]”的引用。[/i][/i]
而这个“[/i]System.Management.Instrumentation[/i]”命名空间提供一些类,提供在规范应用程序管理并通过[/i] WMI [/i]向潜在使用者公开管理信息和事件时必需的类。这样,[/i]Microsoft Application Center [/i]或[/i] Microsoft Operations Manager [/i]等使用者就可以轻松地管理您的应用程序,而管理员脚本或其他应用程序(托管应用程序和非托管应用程序)也可以监视和配置您的应用程序。[/i] [/i]
也就是说,正是因为[/i]Microsoft.Practices.EnterpriseLibrary.Caching[/i],所以为服务引入了“[/i]WMI Performance Adapter[/i]”服务的依赖性。[/i][/i]
如果是一个未授权的账号,比如ASPNET要访问WMI数据,就会得到这样的错误:“拒绝 ASPNET从 C:\WINNT\Microsoft.NET\Framework\v1.1.4322\aspnet_wp.exe 对性能数据进行访问”。
解决方法
我们可以授权[/b]ASPNET[/b]账号以访问[/b]WMI API[/b]的权限,通过如下步骤:[/b]1. 打开计算机管理;
2. 展开“服务和应用程序”;
3. 选中“WMI 控件”节点;
4. 右键菜单中,选择“属性”,则看到“连接到Windows管理”对话框,如下所示
,
然后出现“WMI 控件 属性”对话框;
5. 在“WMI 控件 属性”对话框中,查看“安全”属性页,如下所示:
6. 展开“Root”根节点,选中“WMI”节点;
7. 点击“安全设置”,添加ASPNET的访问权限,如下所示:
8. 点击“应用”和“确定”以保存设置。
编写者 | 日期 | 关键词 |
郑昀@ultrapower | 2005-6-27 | ”Enterprise Library” ASP.NET PerfLib WMI |
相关文章推荐
- [EnterpriseLibrary]为什么拒绝ASPNET对性能数据进行访问
- [EnterpriseLibrary]为什么拒绝ASPNET对性能数据进行访问
- [EnterpriseLibrary]为什么拒绝ASPNET对性能数据进行访问
- 数据可视化性能 – 为什么非常重要?
- 使用ORM工具进行数据访问
- 利用phoenix进行Hbase数据访问
- 利用Cache缓存数据DataTable数据提高大数据量访问性能
- Android为什么要设计出Bundle而不是直接使用HashMap来进行数据传递 Android内存优化(使用SparseArray和ArrayMap代替HashMap)
- Android核心基础-5.Android 数据存储与访问-3.使用Sqlite进行数据存储
- 提高abap数据访问性能的几篇文章的连接
- 十步优化SQL Server中的数据访问性能
- Java多线程初学者指南(9):为什么要进行数据同步
- jxl访问tomcat得到Tomcat性能数据
- 为什么数据分析进行的预测不够成功
- 使用JDBC进行数据访问【spring framwork】
- 利用数据缓存机制提高智能设备应用程序的数据访问性能
- SharePoint服务器端对象模型 之 使用LINQ进行数据访问操作(Part 1)
- System.UnauthorizedAccessException: 拒绝访问 temp 目录。用来运行 XmlSerializer 的标识“NT AUTHORITY\NETWORK SERVICE”没有访问 temp 目录的足够权限。CodeDom 将使用进程正在使用的用户帐户进行编译,这样,如
- 通过Spring使用JPA进行数据访问
- NHibernate+WCF项目实战(二)使用NHibernate实现数据访问并进行单元测试