我有一個Azure雲應用程序,我試圖將用戶上傳的數據存儲在位於〜/ AppData/mydb.db中的SQLite數據庫中。由於我在部署System.Data.SQLite時遇到了許多問題,因此我修改了我的代碼以使用這個sharp-sqlite庫。在調試模式下插入數據時一切正常。Azure SQLite插入
在Azure上部署時,將用戶提供的數據插入到SQLite數據庫中。在此過程中不會出現錯誤。但是,當試圖查看數據(現在應該存在於數據庫中)時,什麼也沒有。我還在我的網絡應用程序中添加了一個鏈接,以便我可以下載數據庫。下載它證實數據沒有被保存。
Azure似乎阻止了數據庫的更新。有沒有人遇到類似的問題。
下面是代碼的樣本,我使用:
Community.CsharpSqlite.SQLiteClient.SqliteConnection cnn = new SqliteConnection("data source=file:" + Server.MapPath(@"~\App_Data\mydb.db"));
cnn.Open();
cmd.CommandText = "INSERT INTO Data(x,y,z) VALUES(?,?,?)";
System.Data.Common.DbParameter X = cmd.CreateParameter();
System.Data.Common.DbParameter Y = cmd.CreateParameter();
System.Data.Common.DbParameter Z = cmd.CreateParameter();
cmd.Parameters.Add(X);
cmd.Parameters.Add(Y);
cmd.Parameters.Add(Z);
X.Value = "some"
Y.Value = "sample"
Z.Value = "data"
cmd.ExecuteNonQuery();
dbTrans.Commit();
我正在做類似的事情,並使用天藍色的網站,我可以讀取和寫入SQLite Db沒有問題。湯姆現身。 – ElvisLives
@Tom,對於Azure網站,我認爲相同的「密封部署包」概念是適用的? Azure網站可以擴展爲多個實例,在這種情況下,不是隻能寫入單個實例的寫入?另外,我確實意識到這個答案已經過了一年多了,也許Azzure網站的工作方式已經改變了? – Josh
@Josh,Azure網站使用標準SMB 2.1協議基於Azure Blob共享文件系統。儘管Azure網站實例是獨立的(例如,一個實例的崩潰不會影響其他實例),但它們共享相同的文件系統,因此所有其他實例可以看到一個實例寫入的更改。 – Tom