访问被拒绝从远程计算机读取Perfmon计数器(Asp.Net)
发布时间:2020-12-16 07:14:43 所属栏目:asp.Net 来源:网络整理
导读:我正在尝试创建一个简单的Asp.Net页面来从远程计算机读取Perfmon计数器. 当我使用Visual Studio开发Web服务器运行页面时一切都很好,但是当我在IIS上托管时尝试运行同一页面时,我在实例化Perfmon计数器的行上得到访问被拒绝错误: PerformanceCounter freeSpa
我正在尝试创建一个简单的Asp.Net页面来从远程计算机读取Perfmon计数器.
当我使用Visual Studio开发Web服务器运行页面时一切都很好,但是当我在IIS上托管时尝试运行同一页面时,我在实例化Perfmon计数器的行上得到访问被拒绝错误: PerformanceCounter freeSpaceCounter = new PerformanceCounter("LogicalDisk","Free Megabytes","D:","RemoteMachine12"); 这是我得到的例外: Exception Details: System.ComponentModel.Win32Exception: Access is denied 我尝试过使用匿名访问(我自己作为匿名用户)和集成Windows身份验证 – 两者都不起作用.显然,其他一些帐户用于读取PerfMon计数器(如ASPNET帐户).如何使用我的帐户而不是该帐户访问我的页面以访问PerfMon计数器? 解决方法
您遇到的问题是IIS在本地帐户的上下文中运行(默认情况下).远程计算机上不存在此本地帐户,因此无法连接以获取性能计数器.当您使用VS开发Web服务器时,它在您自己的本地帐户下运行,因此一切正常.
如果您处于域环境中,则可以将IIS应用程序池配置为可以访问这两台计算机的域帐户运行,并且一切都可以正常运行,但是您可能需要对此进行更多控制. 您可以使用基本身份验证,将应用程序配置为模拟(或者如果您使用IIS7将池配置为在经过身份验证的帐户下运行),或者在您阅读计数器之前进行模拟. 有两种方法可以模拟 – 最安全的方法是将IIS配置为使用集成身份验证,然后打包调用 PerformanceCounter freeSpaceCounter = null; using (((WindowsIdentity)HttpContext.Current.User.Identity).Impersonate()) { freeSpaceCounter = new PerformanceCounter("LogicalDisk","RemoteMachine12"); } 如果您不想要身份验证,则必须配置应用程序池,或者在应用程序中硬编码用户名和密码 – 这应该是最后的选择,请参阅KB306158 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 如何添加日志到MVC4 WebApi
- asp.net-mvc-4 – 使用导航路由的ASP.NET,Twitter.Bootstra
- asp.net-mvc-3 – 如何从控制器外部访问登录用户?
- asp.net-mvc – 在ASP.NET MVC 3应用程序中引用类库中的Nin
- asp.net-web-api – 我的Owin控制台项目从哪里知道另一个库
- Asp.Net Core中WebSocket绑定的方法详解
- asp.net-mvc – 验证在部分视图中不起作用
- asp.net-core-mvc – 使用RenderBody()的UTF-8中的特殊字符
- mvc项目架构分享系列之架构搭建之Infrastructure
- 具有确认电子邮件的ASP.NET会员提供商
推荐文章
站长推荐
- asp.net-mvc – 在ASP.NET MVC中的NHibernate会话
- js触发asp.net的Button的Onclick事件应用
- 将ASP.NET应用程序部署到远程服务器
- asp.net – 将AJAX ModalPopupExtender定位在屏幕
- ASP.NET Core使用单一形式的两个模型
- asp.net – 在WebForms中调试时关闭捆绑/缩小
- asp.net-mvc-2 – 如何在ASP.NET MVC 2.0中的视图
- asp.net-web-api – 与web api和web api 2之间的
- asp.net-mvc – 在MVC3中使用两个可选参数的路由
- .net – 商业应用很糟糕,还有什么吗?
热点阅读