【发布时间】:2015-02-02 21:52:21
【问题描述】:
我开发了一个仅包含通用 http 处理程序的 ASP.NET Web 应用程序。 我开始在 x86 开发机器上使用 IISExpress 进行本地测试,然后部署在 32 位 Windows 2003 Server 上并使用 IIS6.0,一切顺利。
我的公司决定更新到 x64 环境,以便利用一些针对 64 位环境优化的第三方库,因此我们切换到 64 位 Windows Server 2012 R2 标准版,但我遇到了一些麻烦。
在我的本地机器上,现在切换到 x64 开发机器,平台目标设置为 x64,一切顺利,但在服务器上部署时,我总是得到 p>
System.BadImageFormatException
在主程序集上。错误消息的其他部分说程序集管理器是由
加载的C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll
它被执行
C:\Windows\SysWOW64\inetsrv\w3wp.exe
既然 SysWOW64 需要在 64 位环境中运行 32 位应用程序,那么生产机器上的 IIS 服务器可能没有启用运行 x64 网络应用程序? 如果是这样,我应该怎么做才能克服这个问题,因为我知道我没有直接访问服务器的权限。
谢谢。
【问题讨论】:
-
您在项目中设置了哪些属性 -> 属性...?
tell us what the PlatForm Taraget这听起来像是问题所在 -
平台目标设置为 x64
-
要么将其设置为
Any或x86,您可以尝试一下并报告更改是否解决了问题 -
是的。但最后我需要将 Platform Target 设置为 x64 进行编译,因为第三方库以及我们需要使用建议为特定平台编译的 Oracle.Data.Access 的事实。
-
actually I disagree特别是关于 Oracle .. 我上周遇到了这个问题,我不得不下载 Oracle 的 32 位版本和 .net 的 64 位版本,关于 Oracle 有一个严重的@987654325 @ ...
标签: c# asp.net iis 64-bit badimageformatexception