在IIS 7.x上使用ASP + Access資料庫

環境:Windows Server 2008 R2 + IIS 7.x + Access

為了測試hicloud的穩定度,把一個ASP+Access的網站放到hicloud,不過在OS及IIS上有很多必須小心的地方,不然第一個ASP跑不起來,第二個ASP+Access也跑不起來。

ODBC


你不能使用「系統管理工具」裡的ODBC,因為那是64位元版本,雖然你在「工作管理員」看到的是「odbcad32.exe」。
  1. 在64位元作業系統裡,所有32位元版本的程式,最後面都會加上「odbcad32.exe *32」,最後面那個「*.32」才是說這個是32位元程式。
  2. 在「系統管理工具」裡的ODBC是找不到MDB,只有SQL Server。
  3. 找「C:\Windows\SysWOW64」裡「odbcad32.exe」才是32位元版本的ODBC,才有辦法與Access連接。
ps:「C:\Windows\SysWOW64」裡是作業系統相關程式32位元版本集散地。

角色


IIS角色必須包含「ASP」。

站台


在ASP站台中設定「ASP」,
啟用上層路徑:True;

應用程式集區


在ASP的「應用程式集區」「進階設定」「(一般)」
啟用32位元應用程式:True

「寫入」權限


在這裡注意兩個地方的寫入權限:
  1. IIS暫存目錄
    設定「IIS_IUSRS群組」有寫入權限。
  2. Access目錄
    資料庫所在目錄,設定「IUSRS帳戶」有寫入權限。
總之,上了Windows Server 2008後,設定上麻煩許多。

參考:

    9 則留言:

    1. 感謝您發表這麼簡單懂的設定文章,幫我很大很大很大的忙~真的謝謝

      回覆刪除
    2. 抱歉!我是新手。請問 IIS暫存目錄 在哪?Thanks。

      回覆刪除
    3. 在IIS 7中,ASP的暫存目錄為「%SystemDrive%\inetpub\temp\ASP Compiled Templates」

      回覆刪除
    4. 有關 IIS 暫存目錄的問題已解決!感謝您的快速回應。
      不過不知何故。我要將 Access 資料庫的權限設定給 IUSRS 才可以進行資料庫的更新查詢。提供其他人做參考。

      另外,不知大大是否有註冊過 aspSmartUpload.dll 程式?
      我的系統為 windows 2008 r2 64 位元。
      按照網路上查到的資料將 aspSmartUpload.dll 及 aspSmartUploadUtil.dll 複製到 c:/windows/SysWOW64 下
      也以 c:/windows/SysWOW64/regsvr32 c:/windows/SysWOW64/msvbvm50.dll 註冊成功
      (其中 msvbvm50.dll 是從 xp 中複製的,不知是否有差別)
      但 c:/windows/SysWOW64/regsvr32 c:/windows/SysWOW64/aspSmartUpload.dll 一直出現
      呼叫 DllRegisterServer 失敗,錯誤碼為 0x800004005 的訊息

      不知大大是否有遇過相同的狀況?
      再次感謝您的回答^^

      回覆刪除
    5. ASP相關應用程式,最好還是找一台Windows Server 2003來安裝執行。

      aspSmartUpload我沒有用過。

      http://www.google.com.tw/search?hl=zh-TW&q=windows+2008+aspSmartUpload.dll&oq=windows+2008+aspSmartUpload.dll&aq=f&aqi=&aql=&gs_sm=e&gs_upl=8682l13705l0l14655l13l11l0l0l0l1l478l1886l2-1.1.3l5l0

      參考看看。

      回覆刪除
    6. 再次感謝大大的幫忙 aspSmartUpload 已註冊成功^^。
      出現 0x800004005 的錯誤,主要沒有以系統管理員的身份執行 regsvr32。
      以下提供安裝 aspSmartUpload 的相關網址作參考
      http://schoening.it/blog/post/2010/11/16/How-to-install-ASPSmartUpload-on-Windows-7-Vista-Server-2008.aspx
      **註:我安裝時是把 aspSmartUpload 和 aspSmartUploadUtil.dll 都放在 c:/windows/SysWOW64 下
      如何以系統管理員身份執行"命令提示字元"(Command Prompt)
      http://technet.microsoft.com/en-us/library/cc947813(WS.10).aspx
      註冊時有些版本會需要 msvbvm50.dll(64bit 在 c:/windows/SysWOW64 下),可在此下載安裝程式
      http://support.microsoft.com/kb/180071/zh-tw
      提供作參考^^

      回覆刪除
    7. 感謝~~您提供 寶貴 的文章
      讓 我的 iis7 + asp + access 終於 work..
      可稱 IT界的 高手!

      回覆刪除
    8. 感謝 您的 文章
      help me, 解決了
      win7 + iis7 +asp +access
      我的 asp 終於work
      真 是 專業IT

      回覆刪除

    感謝您的留言,如果我的文章你喜歡或對你有幫助,按個「讚」或「分享」它,我會很高興的。