是否有一种方法可以识别IIS或网站已被停止

本文关键字:IIS 识别 网站 方法 一种 是否 | 更新日期: 2023-09-27 18:25:17

我有一个WCF服务,我正在IIS 7.5和Windows 2008的AppFabric上托管。该服务已按建议设置为自动启动。当服务启动时,它会进入一个永远不会结束的while循环,请记住这是所需的行为。while循环应该处理一些我不知道何时可用的数据。

问题是,当我关闭网站或IIS时,服务会继续运行。所以我的问题是:
是否有办法确定IIS或网站已被停止
有没有更好的方法来实现这种永无止境的行为?

希望这里有足够的信息。

是否有一种方法可以识别IIS或网站已被停止

好的,所以您有一个无限的轮询循环在运行。这种设计可能很有意义,尽管它很不寻常。

我建议您启动一个单独的线程来进行轮询。你的线程代码应该是这样的:

void ThreadProc() {
 try {
  while(true) { ... }
 }
 catch (ThreadAbortException) {
  //AppDomain shutdown
 }
}

关闭时,所有线程都将中止。这是检测关机的窍门。

像这样启动线程:

new Thread(ThreadProc) { IsBackground = true }

关于网站状态检测问题:如果您知道网站名称,您可以使用Microsoft.Web.Administration API来确定网站是否已启动。一些好的例子可以在学习IIS网站上找到

然而,我在这里再次关注其他人为什么要使用无限循环。。。