ASP.NET在执行某获取远程服务器进程的用户名时报错“对象的当前状态使该操作无效”

zyzy1_1985 2015-06-23 12:32:37
各位大神,我ASP.net中用c#语言获取远程主机的进程所属的用户名时,用到了网络上提供的以下语句,但在执行时报错:

SelectQuery query1 = new SelectQuery("Select * from Win32_Process WHERE processID=" + pID);
ManagementObjectSearcher searcher1 = new ManagementObjectSearcher(query1);
try
{
foreach (ManagementObject disk in searcher1.Get())
{
ManagementBaseObject inPar = null;
ManagementBaseObject outPar = null;
inPar = disk.GetMethodParameters("GetOwner");
outPar = disk.InvokeMethod("GetOwner", inPar, null);
text1 = outPar["User"].ToString();
break;
}
}
catch
{
text1 = "SYSTEM";
}
return text1;
}

其中,outPar = disk.InvokeMethod("GetOwner", inPar, null)这一句报错,说是“对象的当前状态使该操作无效”,请问各位大神是什么原因?网上有人建议在在web.config增加
<appSettings>
<add key="aspnet:MaxHttpCollectionKeys" value="5000" />
</appSettings>
但是,试了仍然报错。。。所以请各位大侠帮忙,小弟不胜感激。
...全文
109 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
zyzy1_1985 2015-06-23
  • 打赏
  • 举报
回复
试过了,5000改为50000也没有用啊。。。
grn0515 2015-06-23
  • 打赏
  • 举报
回复
1.更新到最新的系统补丁和.net补丁 2.把5000改成50000呢

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧