Azure service fabric 在有状态服务中全局访问数据

Azure service fabric 在有状态服务中全局访问数据,azure-service-fabric,service-fabric-stateful,Azure Service Fabric,Service Fabric Stateful,我将用户信息作为每个调用的一部分传递给有状态服务。我在服务中使用此信息进行审计 我是否必须在服务中传递这些信息,或者是否有其他机制(如用户上下文)来保存我可以全局访问的数据?我过去曾使用线程存储(数据槽)来保存数据,但由于代码是异步的,我认为这不起作用?有一个称为CallContext的概念,这可能会有所帮助。请在此处阅读更多信息:有一个称为CallContext的概念,这可能会有所帮助。请阅读此处的详细信息:您不能将该信息保存在服务中的某个成员中,因为您无法控制如何在多个线程上异步执行并发调用

我将用户信息作为每个调用的一部分传递给有状态服务。我在服务中使用此信息进行审计


我是否必须在服务中传递这些信息,或者是否有其他机制(如用户上下文)来保存我可以全局访问的数据?我过去曾使用线程存储(数据槽)来保存数据,但由于代码是异步的,我认为这不起作用?

有一个称为CallContext的概念,这可能会有所帮助。请在此处阅读更多信息:

有一个称为CallContext的概念,这可能会有所帮助。请阅读此处的详细信息:

您不能将该信息保存在服务中的某个成员中,因为您无法控制如何在多个线程上异步执行并发调用。运行时允许任务和异步方法在两者之间“跳转”的方式意味着ThreadStorage不是保持上下文的安全方式

您需要的是能够从您的服务方法一直执行到实际服务方法的执行,并且不受并发调用(对可能相同的方法)的影响。底层服务结构实现执行方法的方式意味着有多个任务和异步方法被调用,这也意味着仅仅基于此,线程id作为选项是不可能的,因为几乎可以保证在到达代码之前至少跳转一次线程


我写了一个类似的问题(这个问题被删除了,所以我自己加了这个问题)。它基本上解决了您的问题,并且它基于as

您不能将该信息保存在服务中的某个成员中,因为您无法控制如何在多个线程上异步执行并发调用。运行时允许任务和异步方法在两者之间“跳转”的方式意味着ThreadStorage不是保持上下文的安全方式

您需要的是能够从您的服务方法一直执行到实际服务方法的执行,并且不受并发调用(对可能相同的方法)的影响。底层服务结构实现执行方法的方式意味着有多个任务和异步方法被调用,这也意味着仅仅基于此,线程id作为选项是不可能的,因为几乎可以保证在到达代码之前至少跳转一次线程


我写了一个类似的问题(这个问题被删除了,所以我自己加了这个问题)。它基本上解决了您的问题,并且它基于as

这正是我想要的。谢谢这正是我想要的。谢谢