IIS - 无法删除曾经与网站关联的目录

IIS - 无法删除曾经与网站关联的目录

我的一位同事遇到了一个奇怪的 IIS 错误,我能够修复它,但无法解释问题的原因。以下是背景。

Server1 上有一台 IIS 服务器,主网站下有一堆 ASP.NET 应用程序。主网站(即您访问时所访问的网站)http://Server1曾经是与目录关联的自己的 ASP.NET 应用程序C:\MainWebsite。然后可以在目录下访问子 ASP.NET 应用程序http://Server1/AppName。主网站现在重定向到另一台服务器,但目录保留了下来。

删除目录后,C:\MainWebsite所有子 ASP.NET 网站都无法运行,并显示无法找到此或该 .NET 类型的错误。在多次重新启动 IIS 并尝试添加缺少的类型的 DLL 后,我让他在 处创建一个新的空目录C:\MainWebsite并重新启动 IIS。现在所有子网站都可以运行。

发生这种情况的原因是什么?我需要打破某种关联吗?或者使用其他技巧才能C:\MainWebsite删除“不需要的”目录?其他人可能会尝试删除该文件夹并重新开始整个循环。

答案1

我需要更多信息,并且可能需要在服务器上四处探索才能找到这个。我认为这可能与“子”站点的配置方式有关,但我不知道具体是什么原因导致了这种情况。

但是,要回答您的最后一个问题,您可以通过更改安全设置来使目录无法被删除。请参阅:如何才能使文件真正不可变(不可删除和只读)?

答案2

IIS 通常能够很好地释放锁定,但在极少数情况下,它会保持锁定状态。FTP 服务(另一个到位的服务)可能保留了该文件的句柄。

这种情况不会经常发生,但如果您再次遇到这种情况,请使用 www.sysinternals.com 上的 Process Explorer。搜索文件或文件夹名称,它会告诉您哪个应用程序拥有该文件的句柄。如果您愿意,您也可以终止该句柄。在终止文件句柄时一定要非常小心,因为这样可以快速关闭服务器。您首先要找出哪个进程拥有该句柄,这将提供有关原因的线索。

相关内容