我有一个针对不同客户数据库的Webapp,该Webapp运行在多个Application Server上。每个客户都分配给一个AS上的实例。 对于一些客户,某些数据保存在Application Server自身的其他SQLite-DB中;添加此类数据后,WebApp会测试该AS上是否已经存在相应的SQLite-DB,如果不存在,则会使用以下代码创建它:
dbFileName = "C:\\" + dbFileName;
SQLiteConnection.CreateFile(dbFileName);
using (System.Data.SQLite.SQLiteConnection con = new System.Data.SQLite.SQLiteConnection("data source=" + dbFileName))
{
using (System.Data.SQLite.SQLiteCommand com = new System.Data.SQLite.SQLiteCommand(con))
{
con.Open();
问题是,如果我将客户分配给另一个AS上的一个实例,则必须再次创建SQLite-db,因为它无法访问另一个AS上的一个实例。
现在,我的想法是在某些Azure存储上创建SQLite-dbs,我可以在其中从每个AS访问它,但是到目前为止,我无法通过SQLite-Connection访问它。
我了解我的特定SAS(=共享访问签名)和连接字符串,例如在https://www.connectionstrings.com/windows-azure/上指定的字符串 但是我不确定应该为SQLiteConnection使用哪一部分。
有可能吗?
到目前为止,我发现的唯一与Azurestorage连接的示例都是通过HttpRequests(例如How to access Azure blob using SAS in C#)进行的,这对我没有帮助,或者没有人可以向我展示解决此问题的方法吗?
如果您需要更多信息,请告诉我,我在解释问题上很不好,并且没有考虑到很多事情不是常识...
答案 0 :(得分:0)
您不能将Azure存储Blob用作普通文件系统。 SQLite连接字符串中的数据源应该是文件路径或内存。
据我所知,如果要使用Azure存储Blob,则只能mount Blob storage as a file system with blobfuse on Linux OS。但这与普通文件系统不是100%兼容。
另一个选择是使用Azure存储文件,它支持SMB协议。您可以挂载网络驱动程序并使用它。