【问题标题】:ASP.NET 32-bit machine compiled now trying to run on 64-bit machine现在编译的 ASP.NET 32 位机器试图在 64 位机器上运行
【发布时间】:2011-02-14 15:04:50
【问题描述】:

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

【问题讨论】:

  • 您能否定义“当我在本地运行网站时”,即您如何收到“不是有效的 Win32 应用程序”消息 - 是否在事件日志中?
  • 所有引用的程序集都是 AnyCPU 吗?您不能在 64 位应用程序中加载任何 32 位程序集。
  • 要在本地运行(所有文件都在我的机器上),我运行localhost/myapp/mydefaultpage.aspx
  • 所有程序集都设置为 AnyCPU
  • 那么,您在哪里看到“不是有效的 Win32 应用程序”消息?

标签: .net asp.net .net-3.5 64-bit 32bit-64bit


【解决方案1】:

可能您的某些 dll 未编译为 AnyCPU。

使用来自 sysinternals 的 Process Monitor 定位并修复/更改它。

使用进程监视器,您可以看到它无法加载 dll 的位置。

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

希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 2011-01-14
    • 1970-01-01
    • 1970-01-01
    • 2016-05-17
    • 1970-01-01
    • 2012-11-07
    • 2015-06-20
    • 2012-07-05
    • 2017-07-31
    相关资源
    最近更新 更多