繁体   English   中英

从Azure Web角色,检查进程是否以辅助角色运行

[英]From Azure Web Role, check if a process is running in worker role

我正在尝试使用

Process[] processes = Process.GetProcessesByName(processName, workerRoleIPAddress);

从我的控制器检查某个进程是否正在以我的工作者角色运行。 用于工作者角色的正确IP地址是什么? 使用输入Endpoitns使用的IPAddress似乎无效。 有一个更好的方法吗?

您没有被迫使用第二个参数。 有两种方法签名:

http://msdn.microsoft.com/en-us/library/System.Diagnostics.Process.GetProcessesByName(v=vs.71).aspx

  • public static Process[] GetProcessesByName(string);
  • public static Process[] GetProcessesByName(string, string);

我建议您尝试通过第一个方法签名来弄清楚。 之后,尝试使用IP地址。

我会先尝试127.0.0.1。 这是最短的尝试方法。 甚至“本地主机”都可以工作。

然后,我不知道具体的细节,但是要询问远程计算机上的进程列表,此方法将需要在远程计算机上运行的某些服务。 因此,可能需要打开防火墙端口或在另一台计算机上运行某个恶魔。 询问远程计算机上的进程列表将很快成为安全问题。

我最终通过使用Azure存储表解决了该问题。 我使用GetProcesssByName()在本地查询了辅助角色,并将结果存储在Azure存储表中。 随后,我从Web角色访问了此表以读取结果。 必须注意从存储表中删除较旧的条目,因此我们不认为较旧(且当前不存在)的进程仍在运行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM