2010-05-01 126 views
0

我有一个在32位机器上编译的ASP.NET应用程序。有许多不同的程序集被引用。我用ILDASM打开了该网站的主DLL,并查看了.corflags。它表示这是ILONLY。但是,当我在64位机器(Windows XP Pro 64位)上本地运行网站时,我得到“不是有效的Win32应用程序”。应用程序不能运行为64位,因为它是用“AnyCPU”编译的?我怎样才能使这个工作?我正在使用.NET 3.5。我希望应用程序以64位而不是32位运行。ASP.NET 32位机器现在编译试图在64位机器上运行

+0

您可以定义“当我在本地运行网站”,即如何收到“无效的Win32应用程序”消息 - 是在事件日志中? – Rob 2010-05-01 19:40:43

+0

是否所有引用的程序集AnyCPU?您无法在64位应用程序中加载任何32位程序集。 – 2010-05-01 19:54:59

+0

要本地运行(所有文件都在我的机器上),我运行http://localhost/myapp/mydefaultpage.aspx – user31673 2010-05-01 19:59:40

回答

1

可能有些DLL不会编译为AnyCPU。

使用sysinternals中的Process Monitor来找到它并修复它/更改它。

使用进程监视器,你可以看到它无法加载DLL的地方。

也可以在找到一些有问题的dll之后使用dependencyWalker,以查看dll上未加载的更多信息。

希望得到这个帮助。

相关问题