我有一个带有数千个已配置站点的 Win 2003 / IIS 6 Web 服务器。两个站点是独立的,其余的都共享大致相同的配置。
目录中有一些公共代码,然后每个站点都有自己的经典 ASP 代码,其中包括来自公共代码的文件。这是一个非常低效的设置,因为对特定于站点的代码的任何更改都需要在每个站点上单独更改。这也是对磁盘空间的浪费。
无论如何,当我去访问这些站点中的任何一个(除了前面提到的两个奇怪的站点)时,我都会在浏览器窗口中看到“系统找不到指定的文件”。这发生在任何位置。
事件查看器中没有任何有趣的东西。进程监视器没有显示无法打开文件。我什至已经在元数据库中找到了对文件和目录的引用,并修复了实际上丢失的少数几个。
我不能就这些网站的细节寻求帮助,但我可以问的是,就追查问题而言,我该从哪里开始?Apache 有很好的错误记录,IIS 似乎满足于发送无效的 HTTP 响应并且没有提供有用的信息。
确切的错误是什么?是404吗?而且,任何经典的 ASP 页面都可以工作吗?听起来有点像您
<!--#inclue-->
在 ASP 代码中某处有一条路径被破坏的指令。尝试“休息”测试。暂时关闭网站,看看错误信息是否改变。其他站点可能正在捕获绑定,而不是您想要的。
另一个困扰我的问题是,如果我创建一个新的文本文件,重命名为 default.htm,但在 Windows 的默认设置下,它实际上是 default.htm.txt。确保显示已知的扩展名。
在 IIS 日志中,有一个状态代码(在您的情况下为 404),但下一个字段是子状态。这对于 404 错误非常有帮助,因为有很多子状态代码不是 page-not-found 错误。
使用 Process Monitor,您也走在了正确的轨道上。它在磁盘上寻找什么路径,您确定该文件在同一路径中吗?Process Monitor 是一种很好的方式来准确地了解磁盘上发生的情况,并且通常会发现它总是存在的稍微错误的设置。
您是否启用了 Classic ASP 作为 Web 服务扩展?要启用它,请转到 IIS 管理器中的 Web 服务扩展列表,并将 ASP Web 服务扩展的状态配置为允许。
另外,您是否将 ASP 作为 Windows 组件安装?
要检查的另一件事是,您是否安装了URL 扫描?它阻止了asp吗?