IBM.Data.DB2.Core在azure函数应用程序中抛出异常



我正在使用nuget包IBM.Data.DB2.Core 1.3.0.100 dll将来自Azure函数的DB2数据库与AzureFunctionsVersion V2连接起来。应用程序生成成功。

当我运行应用程序并用Postman点击它时,我得到了异常:

System.Private.CoreLib:执行函数时发生异常:Personal GetAgentDownload。AgentDownload:无法加载文件或程序集"IBM.Data.DB2.Core,版本=1.2.2.201,区域性=中性,PublicKeyToken=7c307b91aa13d208"。无法找到或加载特定的文件。(HRESULT:0x80131621中出现异常(。System.Private.CoreLib:无法加载文件或程序集"IBM.Data.DB2.Core,版本=1.2.2.201,区域性=中性,PublicKeyToken=7c307b91aa13d208"。

我看到了1.3.0.100包,没有任何其他包。为什么它在运行时寻找1.1.1.201

知道这有点晚了,但为了防止其他人在最新版本的IBM.Data.DB2.Core(撰写本文时为3.1.0.300版本(中遇到这个问题,这是由于Azure功能平台默认为32位,而IBM dll(或其依赖项之一(需要64位。将平台设置更改为64位解决了此错误。您可以在配置下找到设置>azure门户中的常规设置。

如果IBM.DataDB2.dll文件位于DB2客户端安装位置以外的目录中,则可能会发生这种情况。这可能是在您不知道Visual Studio将必要的dll复制到项目的bin目录的情况下发生的。

IBM.Data.DB2.dll在DB2客户端安装中依赖于其他客户端库。因此,请仅从DB2客户端安装位置引用DLL,不要在应用程序目录中保存本地副本。

转到项目中的引用,将DB2 dll的Copy local设置为false,直接引用DB2客户端设置中的那些。