当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > 在Window2003上执行System.Diagnostics.Process.GetProcessesByName等方法失败的原因

ASP.NET
.net开发实例:绑定到ADO.NET数据源
vb.net中应用 ArrayList 实例
用.net 处理xmlHttp发送异步请求
编写ASP.NET应用程序的十大技巧
完全不使用配置文件构建和使用WCF服务
VB.net2008精彩实例,窗体应用技巧
VB.Net实现Web Service的基础
实用技巧:.Net框架类库中定时器类的使用
ASP.NET MVC:实现我们自己的视图引擎
基于ASP.NET MVC框架开发Web论坛应用程序
用VB.net2008打造你的影音播放器
如何使用.NET实现断点续传功能
如何用.NET技术在线生成网站LOGO
挖掘ADO.NET Entity框架的性能
编写ASP.NET应用程序的十大技巧 (1)
Asp.NET大文件上传开发总结集合
.net开发:如何为程式码加上行号
ASP.NET 中整合JavaScript技巧
浅谈.NET中加密和解密的实现方法
浅析ASP.NET 2.0 Client Callback

ASP.NET 中的 在Window2003上执行System.Diagnostics.Process.GetProcessesByName等方法失败的原因


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 185 ::
收藏到网摘: n/a

在Windows2003上执行 System.Diagnostics.Process.GetProcessesByName等方法会报出Exception:
Couldn't get process information from remote machine.

这个错误的原因是: 获取Process与Performance Counter相关, 当前的执行用户不是Administrator 组成员
MSDN的解释:1.Performance information is not available to a non-admin account, which is not in the Performance Counter Users Group on Windows Server 2003. So the Process class could not get process performance information in this case.

2.Getting performance data from all the processes on the machine is pretty expensive. The operating system (OS) might load lots of DLLs and it might take seconds to complete. The floppy drive light will be on when the OS tries to find the index for some performance counter.
3.f the performance counter data was corrupted for any reason, the Process class could throw an exception while trying to convert some raw performance information into DateTime.

4.The Process class could not be used to get process information on machines without the process performance counter. Performance counters can be disabled in Windows. See the following link for details: http://www.microsoft.com/windows2000/techinfo/reskit/en-us/default.asp?url=/windows2000/techinfo/ reskit/en-us/regentry/94214.asp

The good news is that we have changed the implementation of the Process class in Visual Studio 2005 (our next release, code-named Whidbey). The Process class doesn't have a dependency on performance counter information any more (this is only true for local processes).

相关链接:
http://msdn.microsoft.com/netframework/programming/bcl/faq/SystemDiagnosticsProcessFAQ.aspx