我们有一个系统,其中包含一个Web应用程序和一堆Windows服务,可以完成一些后台工作。
每当我们需要对系统进行更实质性的更改时,我们最终都必须发出IIS重置,然后手动重新启动所有相关的Windows服务。
是否有任何方法可以在C#代码中收到此类IISReset事件的通知,以便我们的Windows服务可以在检测到正在执行此类IISReset命令时自行重启?
谢谢! 马克
答案 0 :(得分:1)
你难道不能只编写一个批处理文件来调用IIS Reset,然后重新启动Windows服务吗?
我认为启动Windows服务的方法是:
NET START "SERVICE NAME"
答案 1 :(得分:1)
同意Nebakanezer,您可能需要先停止服务。
NET STOP "SERVICE NAME" NET START "SERVICE NAME"
如何将虚拟asp.net应用程序部署到IIS服务器,那么您可以检测应该从IISReset上发生的应用程序启动并触发停止和重新启动服务?我不确定IIS是否有一个收紧的安全模型,允许你做停止服务或触发批处理文件来做同样的事情,但值得一试。
如果由于某种原因这不是一个选项,你可以将监控IIS日志的东西拉到一起,我相信它们会记录IIS重置。
答案 2 :(得分:1)
您还可以使用自己的自定义Windows查询语言表达式插入Windows Instrumentation。 我从来没有直接将它用于IIS,但我希望你能听到的对象会让你意识到这些变化。 你可以看一下:http://www.csharphelp.com/archives2/archive334.html作为研究的起点。