我們在我們的web.config
中存儲了用於構建SQL Server CE連接字符串的模板,並使用string.format
來設置數據源和臨時路徑值。SqlCeException數據庫以只讀連接打開
在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數據庫進行只讀操作。因此,作爲smartypants,我想我會刪除web.release.config
中的連接字符串轉換,並且始終使用web.config
中的只讀連接字符串。
這對我正在測試的數據庫工作正常。但有不同的SQL Server CE數據庫上運行相同的代碼失敗,出現以下異常:有消息「的 打開數據庫與只讀連接
異常「System.Data.SqlServerCe.SqlCeException」。不能執行 後期初始化操作,如重建索引和升級 公共跟蹤。請用讀寫連接重新打開。 [ 數據庫名稱= d:\的Inetpub \ wwwroot的\ MyApp的\ App_Data文件\ Storage.sdf]」
我們使用System.Data.SqlServerCe.4.0
提供商
爲什麼在部署到服務器我的發佈版本不讀只有訪問失敗的一些SQL Server CE數據庫,但不是其他人?它是相同的代碼,只是指向一個不同的.SDF
文件。 .SDF
文件具有相同的模式,只是不同的數據。
驅動程序是否嘗試重建索引,因爲.SDF
文件的格式較舊?我們是否應該在生產中不使用只讀連接?這就是爲什麼原始代碼有變化?爲什麼他們都在Windows 7工作站上使用只讀連接?
Temp Path已在兩種配置中指定。不同的是Mode = Read Only被設置在一個配置中,而不是另一個。 –