我有一段代码来处理启动或停止特定进程的场景,为了实现这一点,我使用的是ManagementEventWatcher。
string queryStart = "SELECT * FROM Win32_ProcessStartTrace" +
" WHERE ProcessName LIKE '...'"; // WHERE clause includes all the processnames that I want to monitor
ManagementEventWatcher startWatch = new ManagementEventWatcher(
new WqlEventQuery(queryStart));
startWatch.EventArrived += new EventArrivedEventHandler(ProcessNewInstanceWhenCreated);
startWatch.Start();
此代码在我的计算机上本地工作正常但是当我将其部署到其中一个服务器时,它会抛出“拒绝访问”异常。在服务器上运行此用户的用户没有管理员权限,因此我按照此链接中的说明添加了用户 - http://world.episerver.com/faq/Items/SystemManagementManagementException-Access-denied/
这似乎无法解决问题。我是否已执行任何其他操作以使其在服务器上运行?
我还将ManagementScope添加到ManagementEventHandler中,但仍然没有帮助。
string scopeString = "\\\\" + System.Environment.MachineName + "\\root\\CIMV2";
ManagementScope theScope = new ManagementScope(scopeString);
ManagementEventWatcher startWatch = new ManagementEventWatcher(theScope,
new WqlEventQuery(queryStart));
感谢您的时间和帮助