bcrypt 不是 azure 应用服务上的有效 win 32 应用程序

2023-12-06

为了使用 Node 库 Sharp 进行一些图像处理,我必须将 Azure 应用服务上的节点可执行文件升级到 64 位。我通过手动下载可执行文件然后将其路径设置为IISNode.yml.

不幸的是,当我启动应用程序时,它会抛出以下错误:

应用程序抛出未捕获的异常并终止: 错误:%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 file:

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 位版本的 Node 进行构建。

在我的 Azure 应用程序服务上,我将平台设置为 64 位。

我尝试过的事情:

  • 在 Azure 上将平台设置为 32 位
  • 在应用服务上吹掉node_modules/

提前致谢!


Azure Web Apps 上的默认 Node.js 执行应用程序均为 32 位。所以这就提出了你的问题。我们可以使用自定义的node.js运行时来实现您的要求。请尝试以下步骤:

1、在你的应用程序中放置一个64位的node.exe执行应用程序,例如在一个runtime folder.

2、修改iisnode.yml, set:

nodeProcessCommandLine: "D:\home\site\wwwroot\runtime\node.exe"

3、将整个应用程序部署到Azure Web Apps。

此外,您可以使用以下代码来验证node.js二进制文件是否是x64 or not.

var http = require("http");

http.createServer(function (request, response) {
    response.writeHead(200, { "Content-Type": "text/plain" });
    response.write(require('os').arch());
    response.end();

}).listen(process.env.PORT);

如果这不起作用,请告诉我。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

bcrypt 不是 azure 应用服务上的有效 win 32 应用程序 的相关文章

随机推荐

  • Microsoft Graph - 允许用户访问应用程序/服务主体

    我们正在向员工推出一个主要应用程序 它已设置为使用 Azure AD SSO 目前我们必须通过 Azure AD gt 应用程序 gt 用户手动设置每个用户才能访问该应用程序 我们有一个小型 C Web 应用程序 用于管理 AD 用户希望使
  • 使用 PushState 为 Backbone SPA 配置 Node Express

    我的 Express 应用程序有一个休息服务器和一个使用 Backbone 的 SPA 使用 history一切正常 即 Backbone history start If I do Backbone history start pushS
  • 使用 C# 写入 Excel

    我有一个基本的 WinForms 应用程序 并且希望能够将该应用程序中的数据写入 Excel 电子表格 到目前为止我有以下代码 Microsoft Office Interop Excel Application excelapp new
  • 自定义上传按钮

    嗨 我只是想知道如何创建自己的自定义文件上传按钮 因为我能做的最好的就是 我想要实现的是 如果有的话我会非常感激 请我提供解释如何使用代码执行此操作的答案 而不是包含允许您下载按钮或类似内容的网站链接的答案 谢谢 尽管其中一些答案会创建一些
  • 历史数据的非抽样报告自动化

    我们有一个客户每天收到 2 400 万次访问 因此我们只能获得未抽样的报告 因为它超出了谷歌的限制 对于尚未存储数据的特殊查询 最多 500 000 个会话 我们正在尝试收集 1 天期间的独立访客和访问次数 事实证明 当数据被采样时 使用
  • 给定 k 个已排序数组,从每个数组中选择一个元素,使得所选元素的最大元素和最小元素之差最小

    给定 k 个已排序数组 从每个数组中选择一个元素 使得所选元素的最大元素和最小元素之差最小 k 3 的示例 数组1 1 13 27 30 数组2 16 20 29 数组3 2 3 14 18 19 22 25 28 答 2 选定的元素 27
  • 将指针/引用作为参数传递给变量

    我知道这个问题已经被问过多次 是的 我做了一些研究 但我找不到适合我需求的解决方案 到目前为止我所做的 我正在构建一个函数 用于跟踪用户向下滚动页面的百分比并将其很好地显示在某个进度条中 这工作得很好 但是当我在 Chrome 上打开开发者
  • 如何让 OpenMP 在 MSVC 2015 上运行 clang

    我尝试让 clang 5 0 0 适用于 Visual Studio 2015 因为我需要 OpenMP 3 0 功能 我安装了clang编译器 不是没有任何openmp支持的vs2015版本 并使用cmake cmake minimum
  • 通过 javascript 更改页面比例

    我希望根据分辨率缩放网站主体 但代码似乎不起作用 document body style transform scale window screen availHeight 2 document body style o transform
  • 对动态表行进行编号

    我正在使用 jQuery 制作动态 HTML 表格 在表中 我的用户有两种交互 追加一行 删除特定行 对行进行编号的问题是 如果用户删除特定行 则该行后面的所有行都需要重新编号 我必须选择已删除行之后的所有行并将其行数减去 1 有更好的方法
  • 如何在 SQL Server 上启用 MSDTC?

    这甚至是一个有效的问题吗 我有一个使用 MSTDC 的 NET Windows 应用程序 它抛出异常 System Transactions TransactionManagerCommunicationException 分布式事务管理器
  • 为什么 elementtree.ElementTree.iterparse 使用这么多内存?

    我正在使用 elementtree ElementTree iterparse 来解析一个大的 371 MB xml 文件 我的代码基本上是这样的 outf open out txt w context iterparse copyrigh
  • easeljs 将图像分割成几部分

    我是 easeljs 的新手 想知道如何将图像分割成给定数量的块 根据我到目前为止收集到的信息 我应该使用 SpriteSheets 来完成此任务 然而 我见过的唯一教程是在一张 SpriteSheet 中包含多个图像的教程 而不是将一张图
  • 服务器发送事件在 Google Chrome 中不起作用

    这是我的服务器 JSP 代码 Server Date jsp 这是我的客户端 jsp 页面 Client Serverdate jsp
  • 将一列 json 字符串转换为一列数据

    我有一个大约 30000 行的大数据框和一个包含 json 字符串的列 每个 json 字符串都包含许多变量及其值 我想将此 json 字符串分解为数据列 两行看起来像 0 a 1 b 2 c 3 1 a 4 b 5 c 6 我想将其转换为
  • 在各州之间共享 $Scope 数据

    我正在尝试从孩子访问父状态 我尝试过这个 但它不起作用 angular module myApp controller compareCtrl scope function scope scope test scope parent ser
  • 尝试了解 REPL 上声明的类在内部是如何处理的

    我试图了解 REPL 中范围界定的工作原理 我尝试按照 Joshua Suereth 的 Scala 深入 一书的第 5 1 1 节进行操作 这是在 Windows XP Java 7 和 Scala 2 9 1 上进行的 我声明一个类Di
  • 如何使用 JFileChooser 查找文件位置

    有没有一种方法可以用来简单地查找文件位置 我试图允许用户选择一个文件并打开它 但我必须让 JFileChooser 选择文件并将位置发送到另一个方法 最好的方法是什么 中的例子javadoc显示执行此操作 JFileChooser choo
  • 生成随机订单号但阻止在 WooCommerce 中重新生成

    我试图在创建订单号时添加一个随机字符串 因为默认的序列号很容易被猜到 我尝试了这个片段 function generate random string length 16 return substr str shuffle str repe
  • bcrypt 不是 azure 应用服务上的有效 win 32 应用程序

    为了使用 Node 库 Sharp 进行一些图像处理 我必须将 Azure 应用服务上的节点可执行文件升级到 64 位 我通过手动下载可执行文件然后将其路径设置为IISNode yml 不幸的是 当我启动应用程序时 它会抛出以下错误 应用程