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

ASP.NET
DotNet慎用Shared方法
.net remoting范例
Edit Method
刚开始学习DNN的一点小经验(一)
AddNew Method Example
Edit Method Example
定制DataGrid的外观
jetspeed开发实战
现在有问题,DataGrid分页中的一个问题
浅谈DOTNET大规模团队开发控制与asp.net中webform的viewstate
imgedit imgadmin tiff koda vb6
Thinking in C#
使用XmlReader迭代代替类型化DataSet和IDataReader解析关联数据
浅谈Microsoft Windows操作系统的下一代存储系统WinFS
C#简介- 类和对象,选自《C#编程语言详解》,送给新手
DCG v1.4.1.1
Web Service随笔1
ASP.NET组件设计Step by Step(8)
XMLHTTP 对象及其方法
remoting使用手记(2)

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 71 ::
收藏到网摘: 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