为什么我在克隆站点上会收到此 ISAPI 错误?

Why am I getting this ISAPI error on a cloned site?

我是一名企业开发人员,最近的任务是复制一个已经上线的实时网站。这是项目的第一步,这意味着是一个测试副本。项目规范要求该站点是该站点现在显示方式的精确克隆。这一切都在 IIS 8 上完成。

我复制了文件夹,设置为自己的网站,但是“_dev”版本。我在 web.config 中什么也没做,甚至在我开始遇到问题时使用 KDIFF3 来确保我复制的所有内容都是二进制副本(这是一个 Winforms 站点)。每当我尝试导航到该页面时,都会收到 500 错误。在同一个 IIS 上的同一个框中的原始站点仍然可以。

当然,我启用了失败的请求日志记录,结果是这样的:

ModuleName
IsapiModule 

Notification
EXECUTE_REQUEST_HANDLER 

HttpStatus
500 

HttpReason
Internal Server Error 

HttpSubStatus
0 

ErrorCode
The specified module could not be found.
 (0x8007007e) 

ConfigExceptionInfo

我不常使用 IIS,但我很确定涉及 ISAPI 的工作站点或问题站点的唯一引用是对 System32 中 .Net 2.0 aspnet_filter 的引用.Net 2.0 框架。

由于网站内容相同,都是很简单的内容,我以为是权限问题。在 20 分钟左右的时间里,我为 "Everyone" 提供了 r/w/x,并启用了对子对象的继承,基本上确保可以排除对文件夹或 web.config 的权限,但仍然有同样的问题。

我有点束手无策了。除了上述步骤之外,我找不到任何其他修复方法,但我在同一条船上,即使在重新启动 IIS 之后也是如此。两个站点都使用相同的应用程序池(一个 2.0,经典模式)并且是简单的 WebForms。有谁知道我为什么会遇到这个问题?

更新:我也在我的桌面上本地尝试过它,而不是在网络服务器上。我可以通过 Localhost 完美地连接到它。然后,我通过复制文件夹并向 IIS 添加页面,在我的桌面上安装了第二个。这也行得通。将工作本地安装复制到服务器仍然给我一个不起作用的站点。

答案很奇怪。在该网站上工作的前任开发人员熟悉 Visual Studio 早期版本的 AJAX 工具,并在机器上安装了 .Net 1.1 以确保与他的代码兼容。 IIS 默认新站点指向 .Net 1.1 DLL,而 运行 在 .Net 2.0 应用程序池中。手动更改所有这些以指向 2.0 DLL 解决了这个问题。