2012-09-28 54 views
2

我真的很感激,如果有人可以指出我在正确的方向。Windows Azure和保存设置

我正在尝试构建一个基于Azure的网站。我已经在使用Blob存储来存储大量照片。存储与网站全局配置有关的设置的最佳方式是什么?

例如,通过管理接口的一些设置需要能够被改变,如“FooterCopyrightText”或“国家”(与区域代码的列表,等等)。我不想将它们构建到Web.Config中,或者将它作为数据文件包含在App_Data中。

如果这是一个本地桌面应用程序,我可以简单地把它反序列化的XML文件,并将其存储在内存中的一个静态变量,但这种方法不适用于在Azure上一个可扩展的应用程序。

我的想法是做一些像存储在Azure Blob存储中,并缓存设置。

这是正确的做法吗?

谢谢你的任何想法或指针。

回答

1

我们也有类似的问题,在我最近的项目,我们需要存储与我们发送的电子邮件的各种相关的HTML。我们最终将文本存储在Azure Table Storage中,这种方式提供了一种便捷的方式来存储这样的信息,这种信息可以在多个角色和网站上全局访问。

这里是一个walkthrough让你开始。

+0

我觉得这是一个不错的选择,我会尝试一下。谢谢! – kodikas

1

您可以使用Azure SQL来存储配置数据。它会为您提供关系数据(例如,与特定国家/地区绑定的区域代码),并且不会产生任何查询成本,如果您需要为每个页面加载检索此配置,可能会节省成本。或者罗伯特的方法同样好。它可能取决于数据的类型以及您最佳访问模式。

随着Entity Framework and code-first migrations这是比较容易创建配置模型,然后迁移为您的需求变化。

+0

也感谢您的建议,我打算将部分设置移到SQL表中,然后使用Azure表存储作为其余部分。谢谢! – kodikas

1

您可以使用ServiceConfiguration.cscfg文件。几乎与web.config或app.config相同,但您可以通过Azure管理控制台即时更改这些值。当然,你必须使用RoleEnvironment.GetConfigurationSettingValue而不是普通的ConfigurationManager类。

UPDATE:此链接是有点老了,但仍然看起来像它涵盖了你需要知道如何使用ServiceConfiguration.cscfg文件http://www.codeproject.com/Articles/63977/Windows-Azure-Development-Deep-Dive-Working-With-C