爲了使用節點庫Sharp做一些圖像處理,我必須將Azure App Service上的可執行節點升級到64位。我通過手動下載可執行文件然後在IISNode.yml
中設置其路徑來完成此操作。bcrypt在azure應用程序服務上不是有效的win 32應用程序
不幸的是,當我啓動應用程序,它引發以下錯誤:
應用已經拋出未捕獲的異常而終止: 錯誤:%1不是有效的Win32應用程序。
\\?\D:\home\site\wwwroot\node_modules\bcrypt\build\Release\bcrypt_lib.node
at Error (native)
at Object.Module._extensions..node (module.js:597:18)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
at Function.cls_wrapMethod [as _load] (D:\home\site\wwwroot\node_modules\newrelic\lib\shimmer.js:256:38)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
at bindings (D:\home\site\wwwroot\node_modules\bindings\bindings.js:76:44)
at Object.<anonymous> (D:\home\site\wwwroot\node_modules\bcrypt\bcrypt.js:3:35)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
at Function.cls_wrapMethod [as _load] (D:\home\site\wwwroot\node_modules\newrelic\lib\shimmer.js:256:38)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
at Object.<anonymous> (D:\home\site\wwwroot\node_modules\bookshelf-bcrypt\index.js:5:14)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
我在使用Appveyor CI系統構建和部署應用程序。這是我的我的appveyor.yml
文件的相關部分:
install:
- ps: Install-Product node $env:nodejs_version x64
- SET CL=-DDELAYIMP_INSECURE_WRITABLE_HOOKS
- npm i --loglevel=warn
- npm prune --production
- 7z a api.zip * -x!test -x!db -x!.git -xr!.* -x!README.md -x!nodemon.json -x!appveyor.yml | FIND /V "ing "
你會看到,我使用的節點的64位版本的構建。
在我的Azure應用服務上,我將平臺設置爲64位。
事情我已經嘗試:
- 平臺設置爲32位在Azure上
- 吹走node_modules /在App服務
提前感謝!
感謝您的快速回復! – jdixon04