Azure开发 - 如何停止Web角色实例

时间:2011-07-11 06:59:51

标签: azure development-environment azure-web-roles

我需要测试我的代码如何处理开发环境中Web角色实例的失败。

如何终止其中一个实例?我在UI中看不到任何选项。看起来像一个奇怪的遗漏

更新

问题与分布式缓存层有关(我知道azure提供了自己的) 我希望能够测试系统如何对丢失或额外的节点等做出反应

或许我真正的问题是

最新动态是RoleEnvironment.CurrentRoleInstance.Role.Instances

3 个答案:

答案 0 :(得分:3)

通常需要在开发模拟器中模拟不合适的出口,因为您在Web角色中执行有状态或长时间运行的操作。这通常是气馁的,但有时是不可避免的。

我怀疑模拟失败的最佳方法是杀死进程。如果您打开任务管理器(或更好的Process Explorer),您将看到托管“WaIISHost”或“WaWorkerHost”的“WatDebugger”。如果你杀了这个过程,我认为它会模拟失败。

老实说,在云端测试这个更容易。您可以将RDP插入其中一个实例并终止“WaAppAgent”进程。这将终止您的RoleEntryPoint和结构控制器代理。那将是一次真正的失败。

答案 1 :(得分:0)

失败,你的意思是变得不可用吗?它应该是无缝的,因为下一个请求只是由其他一个实例处理。只要有一个可用实例,Azure就会将呼叫路由到该实例。

这是高可用系统的本质,请求由可用实例处理。这就是为什么你首先有多个实例,以便在一个或多个实例中出现故障时处理请求。

这就是为什么您需要始终关注应用程序处理状态的方式。状态需要在队列或数据库中的实例外维护。这可以确保任何进程都可以获取一项工作并对其执行。

还有另一个问题涉及会话状态应该有所帮助:How does Microsoft Azure handle Session State?

答案 2 :(得分:0)

通过终止实例,你的意思是减少实例数,看看哪一个被杀?我喜欢Ryan关于不合适出口的观点,但如果它被织物强行杀死,那将是一场不同的球赛。