gpt4 book ai didi

asp.net - SqlCeException 数据库以只读连接打开

转载 作者:行者123 更新时间:2023-12-02 03:11:20 25 4
gpt4 key购买 nike

我们在 web.config 中存储了一个用于构建 SQL Server CE 连接字符串的模板。并使用 string.format设置数据源和临时路径值。

web.config ,DB连接字符串的模板为:

"Data Source={0}; Temp Path={1}; Mode=Read Only" 

web.release.config ,我们用来构建部署包,DB连接字符串的模板为:
Data Source={0}; Temp Path={1} 

现在我们只使用 SQL Server CE 数据库进行只读操作。所以,作为一个聪明的人,我想我会删除 web.release.config 中的连接字符串转换并且始终使用来自 web.config 的只读连接字符串.

这对我正在测试的数据库工作正常。但是使用不同的 SQL Server CE 数据库运行相同的代码会失败,并出现以下异常:

Exception 'System.Data.SqlServerCe.SqlCeException' with message 'The database is opened with a read-only connection. Can't perform post-initialization operations like re-building indexes and upgrading public tracking. Please re-open with a read-write connection. [ Database name = D:\inetpub\wwwroot\MyApp\App_Data\Storage.sdf ]'



我们正在使用 System.Data.SqlServerCe.4.0提供者

为什么在部署到服务器的发布版本中,某些 SQL Server CE 数据库的只读访问失败,而其他数据库则没有?它是相同的代码,只是指向不同的 .SDF文件。 .SDF文件具有相同的架构,只是数据不同。

驱动程序是否试图重建索引,因为 .SDF文件是某种较旧的格式?我们不应该在生产中使用只读连接吗?这就是原始代码进行转换的原因吗?为什么它们都在我的 Windows 7 工作站上使用只读连接工作?

最佳答案

您应该始终指定临时路径,因为在操作系统平台/版本之间移动数据库可能需要重建索引。

在这里查看我的博文:http://erikej.blogspot.dk/2009/08/running-sql-compact-from-cd-rom-read.html了解更多详细信息。

关于asp.net - SqlCeException 数据库以只读连接打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39778840/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com