很奇怪的问题。 我使用IIS 6.0运行Windows Server 2003。 在其中一个网站上,有三个虚拟目录:A,B和C.不pipe出于何种原因,并且从我的理解来看,没有人碰过这个盒子,A和C有一个主要问题。 这些虚拟目录中的任何页面(无论您是通过IIS还是外部客户端浏览)都显示未find的页面。 我查看了日志文件中的错误。 这是一个404.0的HTTP错误,Windows状态错误2.所以,页面没有find,系统找不到指定的文件。
文件在那里,他们每一个。
作为testing,我创build了一个名为“D”(不带引号)的新虚拟目录,指向与虚拟目录“C”相同的目录,当然,它工作。 C怎么可能不工作和D工作,但他们都指向相同的物理目录?
作为另一个testing,我删除了虚拟目录“C”并重新创build它。 发生什么了? 该虚拟目录中的任何文件都找不到该页面。
我检查了IIS的XML文件,他们看起来没问题。
必须有一些registry项或IIS的一些依赖项已损坏或丢失,这是造成问题。
我真的很感激一些build议。
谢谢。
答案似乎是一个名为KnowledeBase,利用IIS的程序在IIS之外的东西。 某人或某人运行了其pipe理或注册程序,该程序更改了其registry项的一个或两个registry。 他们的registry项包括存储数据文件的驱动器号,并运行此程序删除或重置这些条目的参数。 我在与知识库程序的供应商取得联系之后才知道这一点。 不仅如此,我无法从IIS浏览文件。 该供应商有一个isapifilter,阻止此请求,并强制您从客户端login访问页面。 他们声称这是出于安全原因,迫使您使用login帐户。 所以,为了testing他们的页面是否工作,我必须使用另一台机器和login。
他们还说虚拟目录“D”工作的原因是因为他们的isapifilter专门查找“A”,“B”和“C”。 任何其他名称和他们的isapifilter不会拿起它。 我想他们在编译的KnowledgeBase应用程序中使用“A”,“B”和“C”。
总而言之,它发现了一个利用IIS修改的registry项的外部应用程序,我只是在供应商的某个人find答案后find了答案。
谢谢。