是否可以在不重新部署我的应用程序的情况下编辑 部署在Windows Azure上的我的云应用程序的web.config文件?
场景就像 - >
是否有任何技巧来更新运行时部署的包中的文件?
Nic*_*ray 20
根据Maxim在下面的评论中,这个答案现在已经过时了.
您可以使用Microsoft.Web.Administration.ServerManager库以编程方式修改OnStart事件中Web角色的web.config设置.
***留下原来的答案,因为它在当时是正确的,因为我回答这个问题时没有使用过Azure,而且我并不是100%肯定有效的答案.
一句话没有.
您必须使用服务配置文件进行此类设置.
决定是否在服务配置设置和Web配置设置中放置密钥.
您可以问自己以下问题:
此设置是否随每次部署而变化?如果是,则Web配置设置是此信息的正确位置.
部署后此设置是否会更改?如果是,则服务配置设置是此信息的正确位置.
Web.config文件是部署包的一部分,因此在部署到Azure时是只读的,以便更新重新部署所需的设置.
服务配置文件随部署包一起上载但未打包,因此您无需重新部署服务即可上载或编辑文件.
这是可能的,如果你更改web.config文件中,ASP.NET应用程序将使用新的设置重新启动,就像你所期望的"正常ASP.NET".您只需要确定您正在对web.config进行正确的更新,否则一旦ASP.NET出现web.config错误,您的实例可能无法修复.
如果您将web.config作为部署包的一部分,则需要更改其上的文件权限,您可以从RoleEntryPoint.OnStart()执行此操作.
另一种方法是让你的ASP.NET应用程序通过一些init web处理程序编写初始web.config本身.
默认情况下,ASP.NET应用程序不会对部署包中的文件或RoleEntryPoint代码编写的文件具有更新或删除权限,同时它对其自身创建的文件具有完全访问权限.此行为仅在"真实Azure"上体验,而在本地使用SDK运行时则表现不佳.
检查此信息以获取有关从RoleEntryPoint.OnStart()写入文件和设置文件权限的信息:如何从RoleEntryPoint.OnStart()获取WebRole站点根路径?
归档时间: |
|
查看次数: |
19987 次 |
最近记录: |