1

我开发了一个仅包含通用 http 处理程序的 ASP.NET Web 应用程序。我开始在 x86 开发机器上使用 IISExpress 进行本地测试,然后部署在 32 位 Windows 2003 Server 和 IIS6.0 上,一切顺利。

我的公司决定更新到 x64 环境以利用一些针对 64 位环境优化的第三方库,因此我们切换到 64 位 Windows Server 2012 R2 标准版,但我遇到了一些麻烦。

在我的本地机器上,现在切换到平台目标设置为 x64 的 x64 开发机器一切顺利,但是在服务器上部署时,我总是得到

System.BadImageFormatException

在主组件上。错误消息的其他部分说程序集管理器是由

C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll

并执行

C:\Windows\SysWOW64\inetsrv\w3wp.exe

由于 SysWOW64 需要在 64 位环境中运行 32 位应用程序,所以生产机器上的 IIS 服务器可能没有启用运行 x64 网络应用程序?如果是这样,我应该怎么做才能克服这个问题,因为我知道我没有直接访问服务器的权限。

谢谢你。

4

1 回答 1

1

错误和路径:

C:\Windows\SysWOW64\inetsrv\w3wp.exe

C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll

...绝对证明您要部署到的生产服务器正在以 32 位模式运行其网站应用程序池,或者无论如何肯定是您的。

作为网络托管商,我们出于一系列遗留原因也这样做。说一说,看看他们是否会将其翻转回本机 64 位模式。

于 2015-02-03T11:55:44.317 回答