Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.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# Azure fabric服务中的不同工作角色是否共享对象?_C#_Asp.net Core_Azure Service Fabric_Azure Worker Roles - Fatal编程技术网

C# Azure fabric服务中的不同工作角色是否共享对象?

C# Azure fabric服务中的不同工作角色是否共享对象?,c#,asp.net-core,azure-service-fabric,azure-worker-roles,C#,Asp.net Core,Azure Service Fabric,Azure Worker Roles,我正在使用Azure service fabric开发Asp.Net核心。我们也有无状态服务。在Azure门户上,我们有5个节点,每个节点有2个实例。我已经实现了日志机制。我也在使用依赖注入 每当worker角色从数据库中提取记录时,在处理该记录之前,几乎没有值,因为我需要在日志框架中记录这些值。我使用此值跟踪所有系统的遥测 目前,我已经为这些值创建了一个对象,并在我拿起文档时将该对象分配给日志类 当我在本地环境中运行时,它工作正常,因为我有一个节点和一个实例。一旦我移动到Azure,它就会开始

我正在使用Azure service fabric开发Asp.Net核心。我们也有无状态服务。在Azure门户上,我们有5个节点,每个节点有2个实例。我已经实现了日志机制。我也在使用依赖注入

每当worker角色从数据库中提取记录时,在处理该记录之前,几乎没有值,因为我需要在日志框架中记录这些值。我使用此值跟踪所有系统的遥测

目前,我已经为这些值创建了一个对象,并在我拿起文档时将该对象分配给日志类

当我在本地环境中运行时,它工作正常,因为我有一个节点和一个实例。一旦我移动到Azure,它就会开始覆盖值

如何避免呢?如何确保在处理之前该值不应更改

对于我们有会话的Asp.Net,是否有类似于工作角色的任务


感谢您的投入和指导。

我认为您的问题与

服务结构有两种模型,共享进程独占进程

当您在创建服务时未指定托管模型时,共享模型是默认模型,此模型将使用单个进程托管来自同一代码包(可执行文件)的多个副本。这意味着,当您在同一节点上启动多个副本时,它将创建一个进程,并在此进程中初始化任何新副本。当您使用静态对象和单例对象时,这是一个大问题,因为所有副本都将看到相同的对象,但在您的代码逻辑上,服务的每个实例应该是不同的

独占进程将在每次在同一节点上放置新副本时创建一个新进程。因此,如果您使用的是静态对象或单例对象,那么这应该是要使用的模型