如果我只想修改web角色的web.config。我不想改变其余的web角色。似乎每次我发布Web角色.VS2010都会将web角色中的所有文件上传到azure。我可以将指定的Web角色文件上传到云服务吗?感谢
答案 0 :(得分:3)
不。云服务无法实现这一点。这意味着如果更改web.config,则必须重新部署整个角色。
这就是为什么看看.cscfg文件 - cloud service configuration file可能是合适的。任何事情都可以随时改变(当你的角色正在运行时)。这当然会增加一些初始开销,因为您必须更改(如果在任何地方使用)所有类型<%$ ConnectionStrings:MyNorthwind%>
的连接字符串的引用。但是,一旦将所有与配置相关的设置更改为从平台无关源(无论是web.config或云服务配置,甚至Azure表存储)读取,您将拥有非常灵活的应用程序部署选项。唯一无法通过服务配置更改的是web.config的system.serviceModel
部分。由于WCF自动布线严重依赖它。仅当您使用WCF服务时才会这样。但是,即使是WCF服务也可以动态配置。
更新(评论后)
您必须重新部署,因为这是提供Platform-As-A-Service的公共云。其中包括硬件故障的自动“修复”,OS补丁/更新,运行时(.net)更新,无限可扩展性。 PaaS的东西是无国籍的。无状态意味着在系统修复/重启/故障/横向扩展/扩展进程中不会保留任何状态。您为系统准备的内容(.cspkg和.cscfg)用作“基本映像”,以便在发生某些事情(初始部署,修复部署等)时形成Cloud Service。
我个人认为重新部署并不那么费时。也许我没有面对足够大的部署。但是,作为最佳实践,我将我的CSPKG / CSCFG上传到blob存储容器中,然后从那里部署/升级。如果我必须“重新部署”,我只是执行“自动升级”和Azure平台Fabric(这是确保我的服务正常运行的智能东西)负责其余部分。其余的是从负载均衡器中取出实例,更新我的包,将实例移回负载平衡器轮换等等,以便每个升级域。
答案 1 :(得分:0)
不幸的是,azure不允许逐个文件地更新包。必须重新部署整个包裹。当具有大尺寸的包装时,这是一个真正的痛苦。我的解决方案通常需要大约45分钟才能上传。
我的建议是在azure上创建一个虚拟机并在那里托管您的网站。请记住将http端口80作为端点打开,如果您计划使用负载平衡的计算机,则必须在所有服务器上复制这些文件。虚拟机是有状态的而不是无状态的(Web角色vms),因此您的设置和数据将保持不变。