刚刚创建了一个简单的ASP.NETMVC项目,列出血压测量结果。我选择使用SQLite作为数据库,因为它(应该)嵌入到项目中,因此消除了对外部数据库的需要。这是昂贵的,也是我选择使用SQLite的原因。这样,我只需要托管Web应用程序,如果我选择了免费的F1层,它就是免费的。
通过VS2022发布成功,应用程序显示正确,但它没有显示任何测量结果。这使得这款应用程序((不)双关语)毫无用处,至少作为一款云应用程序是这样。我做了一些研究,并更改了几次出版设置,但它们现在看起来就是这样。
Configuration: Release
Target Framework: net6.0
Deployment Mode: Self-contained
Target Runtime: win-x86
File Publish Options: None of the options chosen
Databases: Default Connection - Use this connection string at runtime:
=> Data source=bloodpressuremeasurements.db
Entity Framework Migrations: BloodPressureContext (name of the DbContext)
- Apply this migration on publish: NOT chosen, since it gave me an exception and publish failed
Site Extension Options: Install ASP.NET Core Logging Integration Site Extension
- NOT chosen
我还尝试将db文件的选项更改为Copy To Output Directory: Copy always.
,这并没有改变任何事情。我遗漏了什么?
1条答案
按热度按时间kcrjzv8t1#
网站现在可以正常工作了,所有数据都显示出来了。看起来问题源于脚手架的读写方法,使得Visual Studio 2022拉入EntityFrameworkCore.SqlServer。这不是我想要的,因为我使用的是SQLite。
这进而在连接服务下创建了一些服务依赖关系,其中之一是SQL Server之类的东西。它还出现在发布菜单下,似乎导致编译器将连接字符串视为SQL Server数据库连接。
我创建了一个新的应用程序,并复制了第一个应用程序的代码。我小心翼翼地不搭建脚手架,因为我只需要一个GET方法来显示所有的测量结果。我不需要CRUD中的其他方法,既不需要Post、Delete,也不需要Update。我将通过在本地再次运行应用程序来添加新的测量值,并从CSV文件中读取测量值(开始时是这样做的)。然后,我将使用更新后的SQLite数据库重新发布应用程序。