我有一个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