logo-windows-server-2008-r2  Internet Information Services (IIS)

在 IIS 7.x 上启用 32bit 应用支持

IIS7_Welcome

        一个朋友的公司近期要新上线一套 Web 应用系统,这几天开始进行评估测试。这套网站基于 DotNET 2.0 开发,使用的是 MSSQL 数据库。于是我们选择了 Windows Web Server 2008 R2 作为操作系统,SQL Server 2008 R2 Express 作为数据库。系统环境的准备工作都很顺利,由于网站是成品所以需要先上传数据并通过浏览器进行安装。没想到在打开网站时提示如下图的错误信息:

v5mall_64bit_error_1

        从错误信息看,是没能找到 V5Mall.Run64.dll 文件。于是首先想到的是去网上搜索一下是否有相关解决方案,并让朋友尽快联系官方技术支持。一天过去了,对方也没给回复,网上找到的相关信息也都来自其官方论坛,说是因为权限问题导致的,但这点可以排除,我的设置是没问题的。比较离谱的是看到论坛最终的解答是让更换虚拟主机提供商!说此问题是因为虚拟主机提供商的服务器与他们的网站程序不兼容。我晕!这个解决办法明显不适合我们,并且也不是个解决办法!已经习惯了国内开发商的产品和服务质量……还是自己动手吧。

        冷静分析了一下故障错误,既然提示“无法加载 DLL “V5Mall.Run64.dll”:找不到指定的模块。(异常来自 HRESULT:0x8007007E)。”那么首先检查是否有“V5Mall.Run64.dll”这个文件。经查网站下确实无此文件,并且官方也未提供。但是该网站程序又可以运行在“其他”服务器上,如:Windows Server 2003。说明网站程序确实与当前系统环境有兼容性问题,而这个兼容性问题应该是 64bit 操作系统所致。

        回忆起自己曾摘抄过一篇文章《Configuring IIS to Run 32-bit Applications on 64-bit Windows (IIS 6.0)》,既然如此那 Windows Web Server 2008 R2 上的 IIS 7.5 也能够启用 32bit 应用支持,这样就可以避免程序去调用“V5Mall.Run64.dll”,使应用以 32bit 方式运行。

        在 IIS 7.x 中,要“启用 32bit 应用程序支持”,需要对“应用程序池”进行配置。将“enable32BitAppOnWin64”设置为“True”。这样便将应用程序池的工作进程设置为 WOW64 模式,而在 WOW64 模式下,工作进程将仅加载 32 位应用程序的 32 位进程。为了避免影响其他网站,可为 32bit 应用程序的网站单独创建一个应用程序池。下面 gOxiA 将引导大家如何在 IIS 7.x 下启用 32bit 应用程序支持。

  • 为 32bit 应用程序的网站单独创建一个应用程序池,操作过程省略……;
  • 打开“Internet 信息服务 (IIS) 管理器”在左侧窗体中展开服务器列表,找到该网站对应的应用程序池;
  • 选中应用程序池,并在右边操作窗体中点击“高级设置…”;
  • 在“(常规)”设置中找到“启用 32 位应用程序”,并将其设置改为“True”

v5mall_64bit_error_2

        最后确定并完成操作。在 64bit 的 Windows 操作系统上,IIS 7.x 中“启用 32 位应用程序”的默认设置是“False”,为了方便配置和应用,可以通过“设置应用程序池默认设置…”进行统一的修改,这样以后新建的网站应用程序池都将启用 32bit 应用程序支持。

        此外,我们也可以利用命令行进行设置,命令行参考如下:

appcmd set apppool /apppool.name:My32bitApp /enable32bitapponwin64:true

        大家如果也有类似的故障错误,可以用此办法解决。

Microsoft IIS | 评论(0) | 引用(0) | 阅读(11312)
发表评论
昵称 [注册]
密码 游客无需密码
网址
电邮
打开HTML 打开UBB 打开表情 隐藏 记住我