我正在开发一个使用关系数据库 (SQL Server 2008) 的项目。本地(本地)应用程序读取和写入数据库。我正在为 Azure(MVC2 Web 角色)开发一个不同的前端,它将使用相同的数据,但以只读方式。如果我正在部署一个传统的 Web 应用程序,我会使用 SQL Express 作为本地数据库,并通过应用程序更新(数据更改非常缓慢)或通过一些同步系统部署更改。

使用 Azure,图片有点多云(抱歉,我不得不)。我似乎找不到任何信息来表明 SQL Express 是否可以在 Web 角色内部工作,如果是,如何做到这一点。有谁知道是否可以在 Azure Web 角色中使用 SQL Express?

如果被迫,我可以做的其他选择:SQL CE 或使用 SQL Azure。两者都有许多缺点,而且绝对不完美。

谢谢,
埃里克

编辑
我想我的场景可能还不够清楚。

此数据不会在部署之间更改,并且只能从 Web 角色内部访问;它基本上是一个静态缓存。本地部分是一种红鲱鱼,因为它不会影响 Web 角色上的数据(除了作为其来源之外)。基本上,我想要做的是有一个本地数据存储/缓存,我使用现有的 T-SQL/DAL 代码。

虽然我可以使用 SQL Azure,但它不会增加任何东西,如果有任何东西只会增加额外的开销和故障点。我也可以使用 VM 角色,但这太昂贵/复杂了。

在一个完美的世界中,我会将 MDF 打包到 cspkg 中(以便它与应用程序一起部署),然后从角色内部使用它。如果没有办法做到这一点,那也没关系,我需要弄清楚其他解决方案的优缺点。我们并不生活在一个完美的世界中。 :)

最佳答案

您可能能够使用自定义 VHD 运行 SQL Express,但您将无法依赖该 VHD 上存在的任何数据。虚拟机在重新启动时会完全重置 - 重新启动后没有物理持久性。

如果需要,您可以在 Azure blob 存储中找到整个 SQL Server 安装。

但是,在执行所有这些操作时,您将只能拥有一个可以使用该数据库的 worker/web 角色。请记住:一个 SQL Server 数据库一次只能附加到一个 SQL Server。如果要横向扩展,则必须为每个 Web/辅助角色创建新的 SQL Server 实例。

除了成本问题,我想不出 SQL Express 中的任何东西应该成为 99.9% 应用程序的阻碍。

关于sql - 是否可以在 Azure Web 角色中运行 SQL Express?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5293002/

10-14 14:17
查看更多