将整个云服务项目推到云上是非常耗时的,因此,如果它有一些微小的变化,并且我希望它们立即反映出来,那么我就将RDP放到web角色中,进行这些更改并重新启动IIS。这样的事情也能为工人的角色做吗?我可以RDP和替换dll文件,但是我不知道如何重新启动worker角色,因为它不在IIS上运行。我不知道工人的角色是什么?我知道这不是一个好的实践,但由于还在开发阶段,这将极大地加快我的测试过程。
有什么简单的方法来更新云上的工作者角色而不是完全推送呢?
发布于 2013-08-26 16:08:21
布伦特是百分之百正确的,我已经投了他的答案。您应该小心,不要通过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获得。
发布于 2013-08-26 15:14:45
简单地说,您没有这样做,这样做与Windows云服务的“无状态”性质直接冲突。如果某个角色的实例需要移动,它将始终恢复到其最初部署的状态,从而取消您所做的任何更改。角色实例可以在任何时候被移动。因此,任何试图进行RDP并进行更改的尝试都会导致您的巨大痛苦。
如果您确实需要这种类型的动态部署,您可以创建一个启动脚本,该脚本从外部存储(如)中提取内容文件,并在启动之前将它们拉到角色实例中。
工作人员本身只是一个长时间运行的控制台程序,初始进程由来宾VM中的进程调用角色实例的"OnStart“方法启动。
https://stackoverflow.com/questions/18446864
复制相似问题