如何使用Process Monitor确定导致BadImageFormatException的DLL

时间:2011-03-08 14:07:31

标签: asp.net windows 64-bit process-monitor

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

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

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

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

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

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

您的任何项目是否也参考任何第三方图书馆?如果是这样,你知道它们是32位还是64位dll?