Azure SQLite插入 - c#

我有一个Azure云应用,我正在尝试将用户上传的数据存储在〜/ AppData / mydb.db中的SQLite数据库中。由于存在许多问题,因此我不得不部署System.Data.SQLite,因此我修改了代码以使用此sharp-sqlite库。在调试模式下插入数据时,一切正常。

在Azure上部署时,用户提供的数据将插入SQLite数据库。在此过程中不会引发任何错误。但是,当尝试查看数据(现在应该存在于数据库中)时,什么也没有。我还在我的Web应用程序上添加了一个链接,以便可以下载数据库。下载该文件可确认未保存数据。

似乎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();

参考方案

您遇到的问题可能与您的方法有关。

当您说“ Azure cloud”时,我假设您指的是Azure Cloud Services(不是Azure网站)。

就Azure云服务而言,应将您的部署服务包(该服务包包含应用程序代码和服务定义文件)视为密封的包,您的代码无法对其进行修改。但是,您要执行的操作是对内部软件包资源mydb.db文件的更新(通过执行一些SQL插入操作,这将导致mydb.db文件更新)。

具有服务包“不可变”的方法是设计使然。有几点支持该决定:

许多角色(相同类型)可以处理请求(假设您具有多个特定Web角色的实例);这就是为什么您的服务包在所有实例中都必须相同的原因。
Azure执行了操作系统的例行维护或修补,并从服务包中重新创建了实例
Azure尝试从服务或硬件故障中恢复-再次,您的实例已从服务包中重建

我认为Azure云服务的最佳解决方案是使用经过云优化的解决方案,例如Azure SQL数据库。

如果您确实需要使用SQLite,建议您使用Azure Website而不是Azure Cloud Services。使用Azure网站,对资源的更改将被更新,并且其他网站实例可以看到。

路径中的Python Azure Apps 404 - python

我遵循此Create a Python app in Azure App Service on Linux并使用以下功能上传了代码:@app.route('/predict_json', methods=['POST']) def add_message(): content = request.json tweets…

使用Skutypes Azure-sdk-for-java创建问题的VMSS - java

我可以使用skutype:STANDARD_D2S_V3的CLI创建VMSS,但是在JAVA上是不可能的,因为我没有这种类型的sku。 Java上没有V3,但是我使用Java并且使用虚拟化,因此我需要一个允许虚拟化的skutype。我没有为此选择。我尝试使用其他功能,但没有找到任何功能,该功能中的任何类型都允许虚拟化。public static void c…

从Azure Data Factory执行python脚本 - python

有人可以帮我从Azure数据工厂执行python函数吗?我已经将python函数存储在blob中,并且我试图触发同样的功能。但是我无法做到这一点。请协助。第二,我可以从ADF参数化python函数调用吗? python参考方案 您可能会发现ADF中的Azure Function Activity概念,它允许您在Data Factory管道中运行Azure F…

如何管理ACS服务身份 - c#

我在azure WebRole中托管WCF 4.5服务并且我使用Azure ACS服务身份来管理我的wcf用户(主动身份验证)。我接受此模型,因为我们的用户数量有限现在,我想知道如何通过C#代码以编程方式管理(创建/读取/更新/删除)ACS服务身份。 参考方案 看一下具有ACS Management Service API管理功能的ServiceIdenti…

当回复有时是一个对象有时是一个数组时,如何在使用改造时解析JSON回复? - java

我正在使用Retrofit来获取JSON答复。这是我实施的一部分-@GET("/api/report/list") Observable<Bills> listBill(@Query("employee_id") String employeeID); 而条例草案类是-public static class…