我肯定会遇到这样的情况:使用 IIS 管理器停止 IIS 后,我无法访问正在使用的 asp.net bin 目录文件,但是停止万维网发布服务后,这些文件就可以访问了。
有人问,它们不是在做同样的事情吗?有人能确认它们是同一件事吗?我一直以为它们是两件不同的事情……
我特别谈论的是 Windows Server 2003 上的 IIS6(以防它在不同的服务器或 IIS 版本中发生变化)
非常感谢!
答案1
本文在这里可能有帮助。
当您在 IIS 管理器中右键单击服务器并选择“重新启动 IIS”时,它将执行iisreset
。运行iisreset
不会重置 HTTP 堆栈,它只是卸载并重新加载 IIS 进程。
因此,相信iisreset
不会重置W3C服务。
答案2
停止或重新启动 IIS 只会从内存中清除 IIS 进程并停止监听。它实际上不会重新启动 W3C 服务,因此该服务可以保持文件锁定。
答案3
我很困惑。我在 IIS 管理器中没有看到停止 IIS 的选项,只有重新启动它的选项。你的意思是你在 IIS 管理器中停止该网站吗?如果这就是你的意思,那么我想我有一个答案:
我猜您的网站是在“隔离”模式下运行的(IIS 5 术语),因此它在自己的应用程序池中运行,这会为应用程序池生成一个单独的 w3wp.exe 进程。停止网站不会停止或终止应用程序池,因此您的文件仍在使用中并且无法访问。相反,停止 WWW 服务会同时停止网站和应用程序池,终止 w3wp.exe 进程并因此释放正在使用的文件。