我有一个托管在 Azure 中的 Web 应用程序。当我运行应用程序并对用户进行身份验证时,我收到错误“未找到依赖的 DLL 之一”。
背景:
在 Web 应用程序中,我使用指纹扫描仪功能来捕获指纹图像。为了在用户注册期间捕获指纹图像,我使用了一个 javascript 库,它工作得很好。我正在将指纹存储在存储器中。当用户登录网站时,我需要执行身份验证,并再次捕获用户的指纹并将其与与该用户关联的指纹进行比较。为了在服务器端比较两个指纹图像,我的 C# 代码调用指纹扫描仪 SDK,后者又调用依赖的 DLL(来自 System32),我猜它是随指纹扫描仪 SDK 一起提供的。当我在本地运行该网站时,它工作正常(因为我在本地计算机上安装了指纹 SDK)。但是,当我在 Azure 上部署应用程序并执行此代码时,我收到错误“未找到依赖的 DLL 之一”。我了解运行时正在从 system32 文件夹中查找 Azure 环境中不存在的依赖 DLL 之一。
我尝试将指纹扫描仪 DLL 复制到 Azure Web 应用程序 bin 文件夹,但它不起作用。我收到错误尝试加载格式不正确的程序。 (HRESULT 异常:0x8007000B)。
Image - which shows DLL added to root folder
我还尝试将系统 32 DLL 包含到 .net core 类库项目,但出现错误引用无效或不受支持
Image - Error while adding system32 DLL to .net core project
有什么方法可以在 Azure Web 应用程序上安装第三方软件吗?
最佳答案
您无法直接在应用服务中安装第 3 方 DLL。解决这个问题的一种方法是将应用程序部署在应用程序服务将拉取并运行的 Windows 容器中。另一种方法是使用虚拟机而不是应用服务,这样您就可以完全控制机器,并且可以安装任何您想要的东西。
关于c# - Azure Web 应用程序中未找到 Win32 DLL 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56523709/