[WIN][IIS7]Win2008R2 64bit & IIS7 & VB6 DLL 32bit 如何運作正常
工作上遇到,必需把vb6制成的dll放入Win2008R2 64bit 中運行在IIS7+ASP上,
但總是無法正常運作,而在搜尋各解答過程中,
總是沒有一個完整的解決辦法,所以特此記錄完整的解決辦法,
首先如何使註冊一個 32bitDLL 至 Win2008R2 64bit,
步驟1.先把 DLL copy 至 C:\Windows\SysWOW64 底下
步驟2.切換目錄至 C:\Users\Administrator>cd c:\windows\syswow64
步驟3.註冊DLL C:\Windows\SysWOW64>regsvr32 YOUR_DLL.dll
以上就完成了,不過要注意的是要用『管理者模式』才能註冊成功,
接下來就要驗証註冊是否成功(客戶常常會問這句話),
先開啟 regedit,
查看 電腦 \HKEY_CLASSES_ROOT\YOUR_DLL.FUNCTION_NAME是否存在,
如此確認OK,基本上完成 DLL在Win2008R2上的註冊;
接下來就是IIS的設定,
現行大致上會分兩個版本IIS6與IIS7
而 IIS6 M$已有完整的解法http://support.microsoft.com/kb/894435/zh-tw,
只要執行
cscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1
就可以變更執行的環境,
不過要記住IIS6只能執行單一模式,也就是不是32bit就是64bit,
而到了IIS7就有操作畫面可以使用,
可直接至 [IIS管理員]\[應用程式集區]\[進階設定] ,
查看[啟用32位元應用程式]值是否為[True]
或是執行
%windir%\system32\inetsrv\appcmdset config -section:applicationPools-applicationPoolDefaults.enable32BitAppOnWin64:true
也可以達到同樣的效果。
參考網站:
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