【问题标题】:SQLite on Azure websiteAzure 网站上的 SQLite
【发布时间】:2013-01-02 08:34:38
【问题描述】:

我一直在尝试让 SQLite 在 Azure 网站上运行。我已成功部署所有内容,但我需要将其指向数据库的文件名。我已经研究过创建 Blob 存储,但我不确定如何将其转换为 SQLite 将接受的文件名。

我确信这已经完成,因为我可以看到与 Azure 上的 SQLite 相关的其他问题的参考。

我已阅读http://www.sqlite.org/whentouse.html

【问题讨论】:

  • 通过将连接字符串设置为修复:ConnectionString = "Data Source=" + HttpContext.Current.Server.MapPath(@"\App_Data\database.db"); 我还必须通过 ftp 访问 azure 网站以设置网站的 App_Data 文件夹。 (ftp 详细信息存储在您下载的发布设置中!)
  • 你在哪里设置了那个连接字符串?在 Global.asax 中?你不能直接在 web.config 中做动态的东西。我不断收到“不支持给定路径的格式”。例外,不管我填写的是相对路径还是绝对路径。看起来 Azure 想要“/”斜杠而不是“\”斜杠,但我使用的任何组合都会导致路径格式无效。
  • @LouisSomers 。您收到此错误是因为您需要转义反斜杠。即你需要使用 \\ 而不是 \

标签: azure sqlite


【解决方案1】:

根据我的经验,如果您想将 SQLite 与 Azure 网站一起使用,您可以将数据库文件保存在您的部署包中,这样它将保留在您的网站所在的同一台服务器上。 Azure 网站提供 1GB 的应用程序存储空间,足以存储数据库文件。您在网站上的内容将持续存在,并且对 SQLite DB 的访问将很快。这非常简单,您可以非常轻松地使用 ASP.NET Web 应用程序或任何其他应用程序。

选择 Azure Blob 存储的问题是,如果数据库文件存储在 Azure Blob 存储中,则没有 SQLite 可以写入该文件的 API。因此,您可以选择的一种选择是先在本地写入,然后来回同步到 Azure Blob 存储,而 SO 上的其他人可能还有其他选择。如果您出于任何原因想要将数据库文件备份到 Azure Blob 存储,您肯定可以单独执行此操作,但是我认为如果您选择拥有 SQLite,最好将数据库文件与网站一起保存以使其变得简单。

【讨论】:

  • 嘿,谢谢,这正是我所追求的。真的很简单!我的连接字符串错误,所以它试图将数据库文件放在临时 asp.net 文件中
  • 但是,网站可以在不同的机器上运行。您的写入将仅被困在其中之一中。我说的对吗?
  • 我相信@Eduardo Molteni 是正确的。仅当您的站点未跨多台计算机扩展或您有只读数据库时,这才有效。在现实世界中,这只适用于非常有限的应用程序集。
  • @EduardoMolteni 实际上,Azure 网站中任何给定站点的文件系统在所有计算机之间共享,因此您站点的所有实例都可以访问完全相同的数据库文件。
  • 抱歉,我不明白它是如何工作的。部署包到底是什么?是您在每次发布时所做的“已发布文件”吗?是存储库吗?如果是“已发布文件”:那么每次发布时,我的数据库都会被覆盖?如果是存储库:我如何从 webapp 访问(修改!)这个文件?
猜你喜欢
  • 1970-01-01
  • 2014-01-15
  • 1970-01-01
  • 2015-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-31
  • 1970-01-01
相关资源
最近更新 更多