是否有一种方法可以识别IIS或网站已被停止
本文关键字:IIS 识别 网站 方法 一种 是否 | 更新日期: 2023-09-27 18:25:17
我有一个WCF服务,我正在IIS 7.5和Windows 2008的AppFabric上托管。该服务已按建议设置为自动启动。当服务启动时,它会进入一个永远不会结束的while循环,请记住这是所需的行为。while循环应该处理一些我不知道何时可用的数据。
问题是,当我关闭网站或IIS时,服务会继续运行。所以我的问题是:
是否有办法确定IIS或网站已被停止
有没有更好的方法来实现这种永无止境的行为?
希望这里有足够的信息。
好的,所以您有一个无限的轮询循环在运行。这种设计可能很有意义,尽管它很不寻常。
我建议您启动一个单独的线程来进行轮询。你的线程代码应该是这样的:
void ThreadProc() {
try {
while(true) { ... }
}
catch (ThreadAbortException) {
//AppDomain shutdown
}
}
关闭时,所有线程都将中止。这是检测关机的窍门。
像这样启动线程:
new Thread(ThreadProc) { IsBackground = true }
关于网站状态检测问题:如果您知道网站名称,您可以使用Microsoft.Web.Administration API来确定网站是否已启动。一些好的例子可以在学习IIS网站上找到
然而,我在这里再次关注其他人为什么要使用无限循环。。。