最近常常在測試 ASP.NET 網頁程式,突然心血來潮,想把這些網頁程式 POST 到 Windows Server 2003 R2 Standard Edition
64 位元 的 IIS 上。開啟 IIS 管理員,進入網站的設定畫面時,發現好像少了什麼東西。再跟開發環境上的 Windows XP Pro 的 IIS 管理員進行比較,終於發現到了,原來是少了一個
「ASP.NET」索引標籤。
開啟「命令提示字元」,使用下面的指令進行檢查:
cscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs get W3SVC/AppPools/Enable32bitAppOnWin64
結果如下:
這是說,在 IIS 中,已經將 Enable32bitAppOnWin64 屬性設定為 True。用白話來說,就是在 64 位元電腦上執行的 IIS,目前正處於 32 位元模式。
由於 IIS 6 同時支援 32 位元模式及 64 位元模式,但是,IIS 6 不支援同時在 64 位元版的 Windows 上執行兩種模式,也就是說,我只能選擇是在 64 跟 32 位元模式中,擇一使用。
為了解決這個問題,只好將 Enable32bitAppOnWin64 屬性設定為 False:
cscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 0
再用先前的查詢的指令進行檢查:
接著用「ASP.NET IIS 註冊工具」(Aspnet_regiis.exe)重新註冊一次 ASP.NET 設定,以便更新 ASP.NET 應用程式的指令碼對應,並指向與工具相關聯的 ASP.NET ISAPI 版本。要注意的是,要用 64 位元的註冊工具:
cd %SYSTEMROOT%\Microsoft.NET\Framework64\v2.0.40607
aspnet_regiis.exe -i -register
開啟 IIS 管理員進行檢查,收工: