2017/02/18

[筆記] 將 IIS Express 設定為支援 64 bit

同事發佈 MVC 站台到 IIS 上之後噴了如下的畫面



其實不是SQLLite,是某顆使用 SQLLite 的 dll,但起因確實是調用 SQLLite 無法以 AnyCPU 編譯導致

REF: [筆記] SQLite.dll 使用 Any CPU 編譯後的執行階段錯誤

現在的 IIS 預設都沒有把支援 32 bit 打開了

(忘記以前的 64bit os 裡面的 IIS 是不是也預設關閉,但有印象某些骨灰元件放上 IIS 一定要記得檢查這個是不是有打開)

所以死掉是因為放上了 32 bit 的 SQLLite.dll & 使用 SQLLite.dll 的另顆 DLL

回想起以前這件事情找出原因快速把 Build 成 64 bit 的 dll 丟上 IIS 之後就活過來了

但 commit 上 svn 之後開發的同事開始哀號 0rz

打開工作管理員一看發現,IIS Express 是用 32 bit 執行



唉... 難怪開發的人拿到舊版的元件都沒發現有問題 XD

解決方法如下:

打開 Visual Studio,點 Tools -> Options



之後選擇 Project and Solutions -> Web Projects

把第一個 Use 64bit version of IIS Express 給選起來



之後重起專案就好啦!

觀察工作管理員,也可以發現 剛剛那個 IIS Express Worker Process  後面的 32bit 不見了!!


2 則留言: