同事發佈 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 不見了!!
謝謝,有解決到我的問題!
回覆刪除感謝大大
回覆刪除