azure - Azure 上对 SQL Server Compact 4.0 的支持

标签 azure

我的网站是一个使用 VS 2012 构建的 .net 4.5 mvc 网站。我的 app_data 文件夹中有一个 SQL Server Compact DB。一切都在我的本地主机上运行良好。我部署到 Azure 网站并收到此错误?

无法找到请求的 .Net Framework 数据提供程序。可能没有安装。

我用谷歌搜索并得到了很多可能的答案,但没有一个是专门针对 Azure 和 SQL Server Compact 的。所以我的问题很简单。部署到 Azure 共享托管服务器的 Windows Azure 网站是否支持 SQL Server Compact?如果是这样,我需要做什么来消除上述错误并使其正常工作?

最佳答案

当然可以在 Windows Azure 上使用 SQL Server Compact。但是,您需要问自己:

我会更改数据库中的任何内容吗?
这包括添加、更新和删除数据。如果这样做,则不应在 Windows Azure 上使用 SQL Server Compact。因为,如果您在 Windows Azure 上使用 SQL Server Compact 并更改数据库中的任何内容,您将遇到两个问题:

  1. 数据不会被复制。
  2. 您可能会面临丢失数据的风险。

数据不会被复制
如果您更改数据库中的任何内容,更改将保留在本地。这意味着,如果您有多个实例运行您的 Web 应用程序,那么每个 Web 应用程序都将拥有自己的数据库,如果您更改其中一个实例中的某些内容,则该更改不会复制到其他实例,这将导致不可预测的行为在您的应用程序中。

您可能会丢失数据
如果在部署后更改数据库中的任何内容,则可能会丢失数据,因为 Windows Azure 可能决定将实例重新部署到另一台虚拟机或物理机。发生这种情况时,将使用您最初上传到 Windows Azure 的部署包来设置新实例,并且该包不包含您对数据库所做的任何更改。由于多种原因,这种重新部署可能随时发生。

结论
那么,Azure 上的 SQL Compact 呢?当然,如果您的数据是只读,那没问题。但请注意,您将无法获得使用 SQL Azure 所获得的性能。但如果您的需求日后发生变化,您始终可以将应用程序从 SQL Server Compact 迁移到 SQL Azure。

如果您想将 SQL Server Compact 与 Windows Azure 一起使用,可以使用“private deployment”方法,如“ErikEJ”博客中所述。

编辑: Microsoft 宣布他们现在提供 1 free 20 MB SQL Azure Database对于每个 Azure 订阅。这意味着您可以使用免费的 SQL Azure 数据库创建订阅并创建免费网站。 (只要小于 20 MB)您还可以免费拥有与同一 SQL Azure 数据库关联的多个网站。因此,如果您考虑在 Windows Azure 上使用 SQL Server Compact,因为您的数据库非常小并且您不想为 100 MB 的数据库付费,那么您可以考虑此选项。在大多数情况下,这将是一个更好的解决方案。您的网站将表现得更好,您的数据库性能将更好,并且您能够更改数据并将其复制。

关于azure - Azure 上对 SQL Server Compact 4.0 的支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15182933/

相关文章:

Azure Web 服务无法连接到数据库

使用 GetBlobReference() 时,Azure 存储 CloudBlob.Properties 未初始化

Python 记录器异常在 Azure Application Insights(Azure Function)中记录为跟踪

azure - 使用 Microsoft Graph API 时重定向 URL 地址不正确

sql-server - 将集成运行时连接到 azure 数据工厂和权限

azure - 我可以为我不拥有的域添加主机名到我的网站吗?

在删除用户帐户之前将资源迁移到新帐户的 Azure

azure .vhd 图像捕获/加载

sql - 在 SQL Azure 中使用 sys.fn_IsBitSetInBitmask

azure - 表删除时 HDFS 内存不会删除 HIVE