2016-09-29 67 views
2

我們在我們的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工作站上使用只讀連接?

回答