Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
windows azure-角色被销毁时发生的事件_Azure_Lifecycle_Azure Worker Roles - Fatal编程技术网

windows azure-角色被销毁时发生的事件

windows azure-角色被销毁时发生的事件,azure,lifecycle,azure-worker-roles,Azure,Lifecycle,Azure Worker Roles,如果我在工作者角色实例中的主循环中有一个try/catch,那么在例如为更新/重新启动而关闭工作者角色时,是否会引发任何异常 有没有其他方法可以钩住“destroy”事件,比如全局try/catch处理程序或析构函数?(可以肯定的是,这就是任何实例背后的情况,因此它们可以将实例与环境隔离开来) worker/web角色实例的总体生命周期事件是什么 人们总是说Azure是一个防故障且稳定的平台,但也有人说实例可以随时消失。如何确保代码的某些“关键”部分不被环境中断,并且不间断地完成 当以有序的方式

如果我在工作者角色实例中的主循环中有一个try/catch,那么在例如为更新/重新启动而关闭工作者角色时,是否会引发任何异常

有没有其他方法可以钩住“destroy”事件,比如全局try/catch处理程序或析构函数?(可以肯定的是,这就是任何实例背后的情况,因此它们可以将实例与环境隔离开来)

worker/web角色实例的总体生命周期事件是什么


人们总是说Azure是一个防故障且稳定的平台,但也有人说实例可以随时消失。如何确保代码的某些“关键”部分不被环境中断,并且不间断地完成

当以有序的方式删除角色时,将调用
workerrole.cs
文件中的
OnStop
方法


不过,我确实认为,对于任何不优雅的问题,您的试捕就足够了。;)

除了我的回答,你还想找什么吗?因此,最后的问题是:如果某个东西(例如外部COM组件)抛出
未处理的异常
,该怎么办。这件事处理得是否优雅,如何处理?MSDN说停止根本没有被触发。我的想法是:我是否需要编写整个实例代码,记住它随时都可能被角色实例中其他线程中的某个异常所破坏,或者谁知道呢?Azure负责吗?如何编写一个处理程序来处理100%的情况,而不仅仅是99.99%?很酷。我不太熟悉这些实例的生命周期。我担心环境会随时终止进程,想象一些工作线程正在抛出类型为“系统处于关闭状态”或“线程正在中止”的异常,类似于关闭电脑时。如果不保留“联机”线程,似乎会发生这种情况(根据MSDN),直到你完成工作。
public override void OnStop()
{
    try
    {
        // Add code here that runs when the role instance is to be stopped
    }
    catch (Exception e)
    {
        Trace.WriteLine("Exception during OnStop: " + e.ToString());
        // Take other action as needed.
    }
}