[WIN][IIS7]Win2008R2 64bit & IIS7 & VB6 DLL 32bit 如何运行正常

[WIN][IIS7]Win2008R2 64bit & IIS7 & VB6 DLL 32bit 如何运行正常


工作上遇到,必需把vb6制成的dll放入Win2008R2 64bit 中运行在IIS7+ASP上,

但总是无法正常运行,而在搜寻各解答过程中,

总是没有一个完整的解决办法,所以特此记录完整的解决办法,

首先如何使注册一个 32bitDLL 至 Win2008R2 64bit,

步骤1.先把 DLL copy 至 C:WindowsSysWOW64 底下

步骤2.切换目录至 C:UsersAdministrator>cd c:windowssyswow64

步骤3.注册DLL C:WindowsSysWOW64>regsvr32 YOUR_DLL.dll

以上就完成了,不过要注意的是要用‘管理者模式’才能注册成功,

接下来就要验证注册是否成功(客户常常会问这句话),

先开启 regedit,

查看 电脑 HKEY_CLASSES_ROOTYOUR_DLL.FUNCTION_NAME是否存在,

如此确认OK,基本上完成 DLL在Win2008R2上的注册;

接下来就是IIS的设定,

现行大致上会分两个版本IIS6与IIS7

而 IIS6 M$已有完整的解法http://support.microsoft.com/kb/894435/zh-tw,

只要执行

cscript %SYSTEMDRIVE%inetpubadminscriptsadsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1

就可以变更执行的环境,

不过要记住IIS6只能执行单一模式,也就是不是32bit就是64bit,

而到了IIS7就有操作画面可以使用,

可直接至 [IIS管理员][应用程序集区][进阶设定] ,

查看[启用32位应用程序]值是否为[True]

或是执行

%windir%system32inetsrvappcmdset config -section:applicationPools-applicationPoolDefaults.enable32BitAppOnWin64:true

也可以达到同样的效果。

config2

config1 

参考网站:

http://social.msdn.microsoft.com/Forums/zh-HK/236/thread/194a19a7-dcc3-4949-b26b-4d879f7180c0

http://support.microsoft.com/kb/894435/zh-tw

http://www.dotblogs.com.tw/yangxinde/archive/2010/10/14/18330.aspx

http://www.dotblogs.com.tw/remhom/archive/2009/04/21/8074.aspx

http://msdn.microsoft.com/zh-tw/windows/gg537085