从网站重新启动Windows服务

时间:2009-09-03 08:54:05

标签: windows vb.net security iis service

我有一个网站,将信息放入mySQL数据库和Windows服务(用VB.Net编写),用于轮询数据库和操作中的内容。 但是,偶尔它会停止而不是RDP进入服务器,我希望超级用户点击按钮重新启动服务。 我可以按下按钮说,执行c:\ output目录列表到测试文件,这样整个'获取命令在远程服务器上执行'问题就可以了。但是,我无法重启服务。 我认为这是一个安全的事情(虽然它拥有c:\我完全拥有权利。我以为我已经怀疑了)。 该网站在正常的IUSR_user下运行,所以我做了一些非常愚蠢的事情,或者有人可以解释如何让服务重新启动?

非常感谢 阿德里安

4 个答案:

答案 0 :(得分:1)

我认为一个更大的问题是你的服务停滞不前。您是否有任何日志或错误,服务输出到您可以用来诊断为什么它停止?

答案 1 :(得分:0)

我会写一个重新启动所选服务的服务,并从我的网站上调用它,只是为了好玩!

答案 2 :(得分:0)

特定服务似乎you need to give the user permissions。最简单的方法(在我看来)是使用Windows Resource Kit中的subinacl.exe

subinacl.exe /service MySQL /Grant=IUSR_user

在面向公众的Web服务器上执行此操作时,我会非常小心。对重启代码同时进行身份验证和速率限制。

答案 3 :(得分:0)

使用ServiceController类:

http://msdn.microsoft.com/en-us/library/system.serviceprocess.servicecontroller.aspx

这应该允许您连接到指定的服务并停止/启动它。

编辑: 此外,您可能需要让您的Web应用程序模拟具有重新启动服务权限的用户。这可以通过web.config中的身份模拟,或在IIS中配置的应用程序池中运行Web应用程序来完成。请记住,Web应用程序必须在运行服务的同一个框中运行。