Bit*_*ian 8 c# iis azure azure-worker-roles azure-web-roles
将完整的云服务项目推送到云是非常耗时的,所以如果它有一些小的改变,我希望它们立即反映,那么我将RDP转换为Web角色并进行这些更改并重新启动IIS.也可以为工人角色做这样的事吗?我可以RDP并替换dll文件,但我不知道如何重新启动worker角色,因为它不在IIS上运行.我不确定工作角色是什么运行的?我知道这不是一个好习惯,但由于我还处于开发阶段,这将极大地加快我的测试过程.
有没有简单的方法来更新云上的工作者角色而不是全力推动?
kwi*_*ill 12
布伦特是100%正确的,我赞成他的答案.您应该小心不要通过RDP对生产服务进行任何更改.话虽如此,您确实提到这只是为了在开发阶段进行测试,并且能够更新单个DLL文件并进行测试而无需重新部署整个云服务有很多价值.我在Azure VM上进行故障排除时始终执行此操作.
检查http://blogs.msdn.com/b/kwill/archive/2011/05/05/windows-azure-role-architecture.aspx,了解VM上进程的体系结构.特别要注意的是,WaHostBootstrapper是工作者和Web角色的父进程.要替换Web或辅助角色中的DLL,最好的方法是:
*如果您需要更长的时间进行更改,那么您可以将调试器(如WinDBG)附加到WindowsAzureGuestAgent,并将其分解为进程.这将阻止Azure自动重新启动主机引导程序进程.进行更改后,您可以分离调试器并让WindowsAzureGuestAgent继续运行.请注意,如果将WindowsAzureGuestAgent置于停止状态超过10分钟,则主机代理将检测到VM无响应并重新启动VM.
*编辑:有关更详细的说明,请访问http://blogs.msdn.com/b/kwill/archive/2013/09/05/how-to-modify-a-running-azure-service.aspx.
简单地说,你没有.这样做与Windows Azure PaaS云服务的"无状态"性质直接冲突.如果需要移动角色的实例,它将始终恢复到其最初部署的状态,从而使您所做的任何更改无效.角色实例可能随时被移动.因此任何尝试进行RDP并进行更改都会导致您的重大痛苦.
如果您确实需要这种类型的动态部署,则可以创建一个启动脚本,从外部存储(例如Windows Azure Blob存储)中提取内容文件,并在启动之前将它们拉入角色实例.
工作程序本身只是一个长时间运行的控制台程序,其初始进程是从来宾VM中的Windows Azure代理进程调用到角色实例的"OnStart"方法启动的.
| 归档时间: |
|
| 查看次数: |
1919 次 |
| 最近记录: |