0

如果我只想修改 web 角色的 web.config 怎么办。我不想改变网络角色的其余部分。似乎每次我发布 web 角色 .VS2010 都会将 web 角色中的所有文件上传到 azure 。我可以将指定的 Web 角色文件上传到云服务吗?谢谢

4

2 回答 2

3

没有。这对于云服务是不可能的。这意味着如果您更改 web.config,则必须重新部署整个角色。

这就是为什么查看 .cscfg 文件(云服务配置文件)可能比较合适的原因。因为可以随时更改任何内容(在您的角色运行时)。这当然会增加一些初始开销,因为您必须更改(如果在任何地方使用)对连接字符串的所有引用 kind <%$ ConnectionStrings:MyNorthwind%>。但是,一旦您将所有与配置相关的设置更改为从与平台无关的源(无论是 web.config 或云服务配置,甚至是 Azure 表存储)中读取,您将拥有非常灵活的应用程序部署选项。唯一不能通过服务配置更改的是system.serviceModelweb.config 的部分。由于 WCF 自动装配严重依赖它。仅当您使用 WCF 服务时才会这样做。但是,即使是 WCF 服务也可以动态配置。

更新(评论后)

您必须重新部署,因为这是提供平台即服务的公共云。其中包括硬件故障的自动“修复”、操作系统补丁/更新、运行时 (.net) 更新、无限可扩展性。PaaS 的东西是无状态的。无状态意味着在系统修复/重新启动/故障/横向扩展/横向缩减过程中不会保留任何状态。您为系统准备的内容(.cspkg 和 .cscfg)被用作“基础映像”,以在发生某些事情(初始部署、修复部署等)时塑造云服务。

我个人不认为重新部署如此耗时。也许我还没有面临足够大的部署。但是,作为最佳实践,我将我的 CSPKG/CSCFG 上传到 blob 存储容器中,然后从那里部署/升级。如果我必须“重新部署”,我只需执行“自动升级”,Azure 平台 Fabric(这是确保我的服务处于实时和运行状态的智能事物)负责其余的工作。剩下的就是从负载均衡器中取出实例,更新我的包,将实例移回负载均衡器轮换,等等。

于 2012-10-26T06:57:46.463 回答
0

不幸的是,azure 不允许逐个文件更新包。必须重新部署整个包。当拥有大尺寸的包裹时,这是一个真正的痛苦。我的解决方案通常需要大约 45 分钟才能上传。

我的建议是在 azure 上创建一个虚拟机并在那里托管您的网站。请记住打开 http 端口 80 作为端点,如果您计划拥有负载平衡的机器,则必须在所有服务器上复制文件。虚拟机是有状态的而不是无状态的(Web 角色 vm),因此您的设置和数据将被保留。

于 2013-04-27T10:28:03.763 回答