4

我有一个大型 Web 应用程序,它应该在 64 位进程中运行。但是,当我在我的应用程序池上将“启用 32 位应用程序”设置为 False 时,尝试在 IE 中运行应用程序时出现以下错误:

不是有效的Win32应用程序。(来自 HRESULT 的异常:0x800700C1)

错误消息开头的应用程序名称丢失,即我在复制和粘贴过程中没有丢失它。

有人建议我使用进程监视器来确定实际上是哪个应用程序/DLL 加载导致了错误,但我不知道从哪里开始。有人可以建议吗?

编辑: 我尝试仅在 w3wp.exe 和文件系统和进程事件上过滤进程监视器,但只是尝试导航到根 URL 会产生 34,012 个事件。

4

2 回答 2

1

创建一个仅构建为 x64 的控制台应用程序,并使用它来动态加载所有引用的 dll,并在加载之间使用控制台输出。当控制台应用程序无法加载其中一个 dll 时,您将知道它是哪一个。

于 2011-03-09T14:32:25.140 回答
0

我假设这是一个 ASP.Net 应用程序。您是否将您的主要 Web 项目平台目标设置为 x86。

您可以在项目属性 |中找到设置。构建 | 平台目标

您的任何项目是否还引用了任何第 3 方库?如果是这样,您知道它们是 32 位还是 64 位 dll?

于 2011-03-09T07:47:14.240 回答