在Web应用程序中查询C#中的Windows服务状态

时间:2009-10-22 13:17:52

标签: c# windows-services

我们正在使用ServiceController对象来查询我们的服务是否正在运行。我们执行查询的Web应用程序正在使用模拟进行安全性/登录。

System.ServiceProcess.ServiceController sc = new System.ServiceProcess.ServiceController("myService");
return sc.Status

使用管理员帐户,查询成功。使用有限的帐户(非管理员),查询失败,并显示“在计算机上找不到服务myService”的消息。'...但它只在Windows Server 2003中失败而在Windows XP中失败。

我用Google搜索并检查了MSDN。我没有找到任何与Windows Server 2003中ServiceController的使用相关的内容。

有什么想法吗?

编辑:如果有办法在不使用不涉及“安全”权限的ServiceController的情况下查询服务状态,那么这可能对我们有用。我们只需要了解服务的状态。

更新:

我创建了一个简单的控制台应用程序,它将打印服务的状态。我使用“runas”命令使用管理员和非管理员帐户运行应用程序。它在Windows Server 2003中都有效...这意味着这是一个特权问题没有被正确地传递给Web应用程序中的ServiceController调用? IIS安全的东西也许?

谢谢!

1 个答案:

答案 0 :(得分:0)

我认为Web应用程序应该在沙箱中运行。由于安全问题,允许访问在本地计算机上运行的服务并不是您应该做的事情。

也许你可以告诉我们你想做什么,还有另一种解决方案吗?