热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

为什么在AzureFunctions中使用SQLite会给我DLLNotFoundException?

如何解决《为什么在AzureFunctions中使用SQLite会给我DLLNotFoundException?》经验,为你挑选了1个好方法。

我正在尝试编写一个计时器触发的Azure函数,该函数下载一堆数据并将其处理到SQLite数据库中。我已经编写了执行此操作的代码,并且可以在自己的计算机上正常运行。但是,Azure中的相同代码会产生DllNotFoundException,抱怨系统无法加载“ e_sqlite3”。

这是完整的错误消息(针对内部异常):

执行函数时异常:FnordFunction

Microsoft.Azure.WebJobs.Host.FunctionInvocationException:执行函数时发生异常:FnordFunction ---> System.TypeInitializationException:“ SQLite.SQLiteConnection”的类型初始值设定项引发了异常。---> System.DllNotFoundException:无法加载DLL'e_sqlite3':找不到指定的模块。(来自HRESULT的异常:0x8007007E)

在SQLitePCL.SQLite3Provider_e_sqlite3.NativeMethods.sqlite3_libversion_number()

在SQLitePCL.SQLite3Provider_e_sqlite3.SQLitePCL.ISQLite3Provider.sqlite3_libversion_number()

在SQLitePCL.raw.SetProvider(ISQLite3Provider imp)

在SQLitePCL.Batteries_V2.Init()

在SQLite.SQLiteConnection..cctor()

内部异常结束

以下是重现步骤:

    在Visual Studio 2017中,我使用最新的模板创建了一个Azure Function项目。

    我将代码文件添加到项目中,并编辑了“运行”方法以调用代码。

    使用NuGet,我添加了sqlite-net-pcl和其他一些我需要的库。(我还使用SQLite在EntityFrameworkCore上尝试过;这也不起作用)。

    建立

    发布

    跑。失败。

问题可能是我的代码是错误的,但是当我只创建一个控制台.exe时,它可以正常工作。

问题可能是VS2017在构建时未为SQLite捆绑正确的dll。我不确定该如何解决。我从其他搜索中已经看到,当平台目标设置为“任何CPU”时,会弹出相同的错误消息,但是将其更改为x86或x64并不能解决问题。

问题可能是我尝试过的SQLite库无法在Azure Functions沙箱中运行。如果是这样,是否有任何简单的SQLite库将在沙箱中运行?

提前致谢...



1> David Ebbo..:

问题在于,当在Function App中运行时,无法从您的bin文件夹自动加载本机二进制文件,因此找不到DLL。

解决此问题的一种方法是将其放入您的D:\home\site\tools文件夹中(例如,使用Kudu Console),因为该文件夹会自动放置在PATH上。


推荐阅读
  • Easyui + asp.net mvc + sqlite 开发教程(录屏)适合入门
    第一节:前言(技术简介)EasyUI是一套js的前端框架利用它可以快速的开发出好看的前端系统web它是在jquery的框架基础上面现在越来越多的企业用它来开发web系统 ... [详细]
  • 州的先生(https:zmister.com)在很多项目中都有使用到SQLite数据库作为数据存储的工具,其中包括一些桌面图形界面程序和线上的Web应用程序。至今为止,它们都运行良 ... [详细]
  • iOS关于移动端SQLite,你想知道的都有
    一、SQLite简介SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。它的设计目 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文详细介绍了MysqlDump和mysqldump进行全库备份的相关知识,包括备份命令的使用方法、my.cnf配置文件的设置、binlog日志的位置指定、增量恢复的方式以及适用于innodb引擎和myisam引擎的备份方法。对于需要进行数据库备份的用户来说,本文提供了一些有价值的参考内容。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 本文讨论了在数据库打开和关闭状态下,重新命名或移动数据文件和日志文件的情况。针对性能和维护原因,需要将数据库文件移动到不同的磁盘上或重新分配到新的磁盘上的情况,以及在操作系统级别移动或重命名数据文件但未在数据库层进行重命名导致报错的情况。通过三个方面进行讨论。 ... [详细]
  • 本文介绍了关系型数据库和NoSQL数据库的概念和特点,列举了主流的关系型数据库和NoSQL数据库,同时描述了它们在新闻、电商抢购信息和微博热点信息等场景中的应用。此外,还提供了MySQL配置文件的相关内容。 ... [详细]
  • Unity3D引擎的体系结构和功能详解
    本文详细介绍了Unity3D引擎的体系结构和功能。Unity3D是一个屡获殊荣的工具,用于创建交互式3D应用程序。它由游戏引擎和编辑器组成,支持C#、Boo和JavaScript脚本编程。该引擎涵盖了声音、图形、物理和网络功能等主题。Unity编辑器具有多语言脚本编辑器和预制装配系统等特点。本文还介绍了Unity的许可证情况。Unity基本功能有限的免费,适用于PC、MAC和Web开发。其他平台或完整的功能集需要购买许可证。 ... [详细]
  • mysqldinitializeconsole失败_mysql03误删除了所有用户解决办法
    误删除了所有用户解决办法第一种方法(企业常用)1.将数据库down掉[rootdb03mysql]#etcinit.dmysqldstopShuttingdownMySQL..SU ... [详细]
  • 在Android Studio中查看SQLite数据库
    原来查看数据库内容,我们一般都是将数据库文件从手机导出,再用专门的软件打开查看,比较繁琐。最近发现了一个比较方便的方法:使用工具stetho。使用方式在gradle中配置depen ... [详细]
  • SQLite3是一个广泛使用的数据库,从linux,windows到安卓都有SQLite的应用。本文介绍SQLite3在windows上的编译。SQLite3提供了多种源代码的下载 ... [详细]
  • 有没有人用过sqlite?关于tablehasnocolumnnamedcolumn插入数据的时候报上边的错。问题是我明明有这一列。直接在sqlitedevoloper里执 ... [详细]
  • Python使用SQLite1.sqlite3的安装python2.5.x以上版本默认自带sqlite3模块。2.链接sqlite3数据库```#导入sqlite3模块import ... [详细]
  • 转自:http:www.cnblogs.comzeroonep4316346.html如果一个.NET应用要自适应32位64位系统,只需要在项目的“目标平台”设置为“AnyCPU”。但是 ... [详细]
author-avatar
皇家城市_579
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有