2013-03-11 60 views
5

我有一个网络和一个工作者角色的Azure云服务。当Azure云服务停止时,将调用OnStop()方法。Azure云服务 - VIP交换是否会导致OnStop()被调用?

在VIP交换中,只要请求VIP交换,它是否在传出服务部署上调用相同的OnStop()方法? http://msdn.microsoft.com/en-us/library/microsoft.windowsazure.serviceruntime.roleentrypoint.onstop.aspx

另外,VIP交换过程中的事件顺序是什么?据推测,新部署的工作者OnStart()方法在某个时间点运行,但在传出部署的OnStop()之前运行?我试图了解两个工作者角色版本(传入和传出部署)是否将同时运行,或者是否在工作人员角色服务中存在短缺。

+0

Gaurav和Sharptooth覆盖了OnStop部分(基本上,OnStop只发生在您的角色停止 - 并且VIP交换不会启动停止时)。我想对你的第二个问题发表评论:“我试图了解两个工作者角色版本(传入和传出部署)是否将同时运行,或者是否在工作人员角色服务中存在短缺。”简单的答案是,不应该有任何东西在听的间隙,但是旧的和新的代码仍然可以同时执行,因为当新交换时OLD可能已经在处理请求了。 – codingoutloud 2013-03-18 21:30:41

回答

7

据我所知,当您执行VIP交换更改发生在路由器/防火墙级别而不是在云服务级别。您的云服务继续运行,并且OnStop()事件未被触发。由于文档在这里提到:http://msdn.microsoft.com/en-us/library/windowsazure/hh386336.aspx

当服务被提升到生产,贵宾和被分配到生产环境 被分配到部署 是目前临时环境URL,从而“推动“ 服务生产。分配给分段 环境的VIP和URL将分配给在生产 环境中的部署。

1

在“VIP交换”期间不会发生任何事件。我们已经为所有类型的事件和入口点添加了追踪,并且绝对来自角色代码,看起来在“VIP交换”期间没有任何事情发生。

您的服务在交换过程中不会中断。只有新的请求才会开始进入新的部署。较旧和较新的部署并行运行,直到您停止较旧(现在正在运行)的部署为止。你的应用程序应该能够处理这种情况并且不会破坏任何东西。