我在一个生产应用程序中使用EF Core 6.0和SQLite。多年来,它在Azure Windows中一直运行良好。昨天,我将同一个应用程序迁移到Azure Linux和.NET 6.0。令人惊讶的是,数据库在更新时锁定,无法更改任何内容。
我已将此问题隔离为一个基本的DELETE
操作:
context.Database.ExecuteSqlRaw("DELETE FROM Table WHERE ID = 1")
在Azure Windows和我的本地计算机中运行良好。在新创建的Azure Linux Web应用中,如果失败并显示错误
Sqlite异常:SQLite错误5:'数据库已锁定'
完全相同的代码和设置。
数据源已减少到最小值-“数据源=...文件”
应用程序可以成功写入数据库文件夹。数据库文件具有写入权限。
不知道还能做什么...
EF Core在Windows和Linux中的行为是否不同?
1条答案
按热度按时间6bc51xsx1#
显然,/home被装载为CIFS文件系统,无法处理SQLite3锁。github.com/MicrosoftDocs/azure-docs/issues/47130