0

我们目前有一个 asp.net 网站和 windows 服务,其中包含一个单独的配置文件,其中包含我们解决方案中每个可插入项目的自定义部分。这些文件是根据机器名称和配置的客户加载的,因此如果机器称为 machine-01,它会转到名为 machine-01 的文件夹,如果客户名称是 customer-01,它会尝试在该文件夹中查找文件客户-01.config。这对我们来说效果很好,因为每台开发机器都有自己的配置文件,我们可以为客户创建一个配置文件并将其保存在 TFS 中。

然而,现在我们也希望为我们的大多数客户在 Azure 云服务中托管我们的网站,尽管一两个客户在他们自己的基础设施(标准 Windows 服务器、IIS 等)上托管应用程序。

我们的部署过程并不理想,它涉及手动复制应用程序和手动运行 Sql 脚本。我们现在正在远离这一点,我们开始关注 FluentMigrator,并且我们想要达到一个点,即我们为 Azure 和自托管的应用程序版本提供了一个部署包。

我很高兴尽可能多地更改/重写,但在理想的世界中,我想了解一个可供 Web 和工作人员角色使用的单个设置文件,其中包含所有未部署的设置该应用程序已为该服务设置为 azure,因为这些设置不会更改。同时继续为非天蓝色部署使用我们的自定义配置文件。

是否可以以这种方式将设置文件上传到 azure 云服务,并在启动时为 Web 和辅助角色加载该文件?

正如我所说,很高兴在这里根据需要重写以获得最佳解决方案,很高兴放弃我们所拥有的支持理想解决方案的内容。非常感谢您的任何意见/建议。

4

1 回答 1

0

经过类似的练习,您的问题实际上与配置数据的位置有关,并且设置文件的动态性不足以满足您的要求。因此,您需要查看另一种存储机制,即 SQL Db 或 Azure 表存储,它存储您的应用程序所需的所有适当配置数据,并在角色启动或网站应用程序启动时加载这些数据。顺便说一句 - 你不能优雅地让 WebRole 与网站通信,它可能但很混乱。

我们最初考虑在站点上动态更改 web.config,但这会在 Azure 平台上引起一大堆麻烦,这看起来是可能的,但有一定的让步。FWIW 这是我最初遵循的,但使用 ASP.NET 数据缓存并在 Application_Start 加载配置设置。

高温高压

于 2014-09-08T10:00:54.570 回答