文件从预编译的 64 位网站项目的虚拟目录中删除

Files get deleted from virtual directory of precompiled 64-bit web site project

我有一个网站项目,它实际上运行在启用 32 位的应用程序池、.net 2.0、IIS 7.5、Windows 7.

这是失败的场景(但最重要的是它是如何失败的)。我使用 aspnet_compiler.exe 为 x64 预编译了这个站点。我创建了新的、仅限 64 位的应用程序池,并设置了一个预编译代码的虚拟目录。我经常这样做,所以一切照常,只是通常我测试 32 位版本的代码。

一旦我尝试通过 url (http://localhost/mysite/login.aspx) 访问我的网站,我的虚拟目录中的文件开始消失。我打开 windows 资源管理器,我可以看到文件是如何被删除的。然后,它们消失了,我收到 404 响应。

有人见过类似的东西吗?

希望有人能从我的经验中受益。

发生了什么事,我获取了不包含 web.config 文件的代码库。 w3wp.exe [根据 procmon] 正在删除整个虚拟目录,而 web.config 不存在。以下是我的发现 - 我启用了 32 位执行,但我立即在页面上收到 web.config 错误。我去修复它,但文件不存在。我发布了文件,现在它给了我 "incorrect format" 异常,这是正常的,因为我的代码库实际上是 64 位的。因此,我在应用程序池上禁用了 32 位执行,一切正常。

奇怪的行为是没有 web.config w3wp.exe 正在删除整个虚拟目录。