Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.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
C# 在应用程序升级期间,是否有方法从单个实例访问所有实例的详细信息?_C#_Azure_Azure Service Fabric - Fatal编程技术网

C# 在应用程序升级期间,是否有方法从单个实例访问所有实例的详细信息?

C# 在应用程序升级期间,是否有方法从单个实例访问所有实例的详细信息?,c#,azure,azure-service-fabric,C#,Azure,Azure Service Fabric,我正在使用POC来清除每个服务实例报告的实例级自定义运行状况事件(服务当前部署在3个实例上)我正在清除应用程序升级开始时的报告 现在的问题是,如果任何或所有实例都报告了任何“错误”事件,则在执行应用程序升级时,第一个实例会得到更新(报告也会被清除),但由于其他两个实例仍处于错误状态,SF会回滚升级 我的一个选择是进行无监控的部队升级。但我只是想知道是否有任何方法可以访问其他两个实例的数据,比如从NodeContext?如果有,我想在升级第一个实例时,尝试从其他实例中清除自定义错误运行状况事件 谢

我正在使用POC来清除每个服务实例报告的实例级自定义运行状况事件(服务当前部署在3个实例上)我正在清除应用程序升级开始时的报告

现在的问题是,如果任何或所有实例都报告了任何“错误”事件,则在执行应用程序升级时,第一个实例会得到更新(报告也会被清除),但由于其他两个实例仍处于错误状态,SF会回滚升级

我的一个选择是进行无监控的部队升级。但我只是想知道是否有任何方法可以访问其他两个实例的数据,比如从NodeContext?如果有,我想在升级第一个实例时,尝试从其他实例中清除自定义错误运行状况事件


谢谢大家!

我觉得你好像误用了健康模式。错误运行状况状态应停止滚动升级。如果只是在开始升级之前清除错误运行状况状态,那么首先报告错误运行状况状态就没有意义了

现在的问题是,如果任何或所有实例都报告了任何“错误”事件,则在执行应用程序升级时,第一个实例会得到更新(报告也会被清除),但由于其他两个实例仍处于错误状态,SF会回滚升级

是的,这是服务结构的一个重要特性。系统正在做它应该做的事情:它回滚您的升级,因为您报告了一个错误

从ServiceFabric的角度来看,错误状态非常严重,系统不会接触您的服务,因为这可能会导致进一步的灾难性问题,如数据丢失。这意味着升级(应用程序和系统)将停止并回滚,如果您以这种方式进行配置的话

使用健康系统对您有利的一个例子是使用一些代码来评估服务的功能并基于此报告健康状况。这样,当有人更改服务代码并进行升级时,服务的功能将得到评估,如果某项功能工作不正常,将报告错误运行状况状态,从而停止升级并为您回滚。评估代码甚至可以在一个单独的服务中,称为“看门狗”,它可以简单到ping一个服务端点并确保响应正常


我强烈建议仔细阅读健康模型文档,了解它是如何工作的,然后进行一点实验,看看什么适用于您的特定问题领域

你的问题不清楚。“我正在清除应用程序升级开始时的报告”是什么意思?还有,当你说“升级”时,你到底做了什么?我正在清除服务在应用程序升级时报告的自定义运行状况事件,比如配置版本升级。