Azure for Sqlite中正确的连接字符串变量是什么?

时间:2017-01-29 03:33:44

标签: sqlite azure .net-core

尝试在Azure上使用带有身份验证和授权的默认dotnet核心示例应用程序的Sqlite数据库。在我的本地计算机上,它将数据库放在/Users/me/Projects/myProj/bin/Debug/netcoreapp1.0/myProj.db - 我的appsettings.json包含这个:

"ConnectionStrings": {
    "DefaultConnection": "Data Source=myProj.db"

所以现在当我上传到没有appsettings.json的azure时,我必须在应用程序设置中配置连接 - >天蓝色的连接字符串部分。我遇到的部分问题是当我从本地主机git push到azure时,数据库的位置会发生变化。它被移动到d:\home\site\wwwroot。我知道我必须更改连接字符串,但是我对我的想法的各种更改应该使它指向失败 - 我是否包含“数据源”部分?或者......我需要报价吗?我看到一个related post,在评论中给出了一个有趣的答案,但这没有用。

将这个输入到azure的连接字符串中的正确方法是什么? Azure connection strings entry

1 个答案:

答案 0 :(得分:4)

SQLite的连接字符串应包含DataSource,如下所示:

Data Source=c:\path\mydb.db;

您的SQLite数据库应位于项目的App_data文件夹中。您需要为.NET核心项目手动创建它。

然后,如果您不确定,可以使用Kudu检查已部署的网站并找出部署后数据库文件的放置位置。登录到Kudu,导航到https://yourwebsite.scm.azurewebsites.net,即您的网站Uri,但在名称和azurewebsites.net之间添加 scm 。使用您用于Azure门户的相同凭据登录。

您现在应该看到Kudu门户网站。转到调试控制台,然后选择 CMD PowerShell (您可以选择)。在顶部,您现在将看到一个文件资源管理器,如果已正确部署,您应该能够在此处找到您的数据库文件。

enter image description here

只需导航至D:\home\site\wwwroot,然后查看您是否有App_data文件夹。找到数据库后,您可以将该路径放入Azure门户中的连接字符串并重新启动网站。

另一种方法是在代码中构建连接字符串,并允许ASP.NET为您创建文件夹:

ConnectionString = "Data Source=" +
    HttpContext.Current.Server.MapPath(@"\App_Data\mydb.db")‌​;

或:

ConnectionString = "Data Source=" +
    AppDomain.CurrentDomain.GetData("DataDirectory") + "mydb.db";

请注意,您网站在App_data(或任何其他磁盘位置)的网站可用空间有限(取决于您的等级),如果您的数据库耗尽了您的网站将崩溃的所有内容,数据库不会保存数据,每个人都会感到难过。

另一个选择是使用blob storage并将SQLite数据库文件放在那里。