Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/274.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# HttpClient授权处理程序持有状态_C#_Azure_Httpclient_Microservices_Azure Service Fabric - Fatal编程技术网

C# HttpClient授权处理程序持有状态

C# HttpClient授权处理程序持有状态,c#,azure,httpclient,microservices,azure-service-fabric,C#,Azure,Httpclient,Microservices,Azure Service Fabric,我们正在Azure Service Fabric上构建一个主要由无状态微服务组成的应用程序。服务结构的工件之一是命名服务返回服务的一个实例的端点 如果客户端无法与该服务通信,它需要返回命名服务,获取另一个实例的端点,然后重试 因为我不希望每个开发人员都必须这样做,所以我为此创建了一个。但是,命名服务使用字符串来标识服务。将此标识符设置为处理程序上的属性将使其具有状态,因此无法再共享结果对象以调用不同的服务 由于处理程序是HttpClient类的私有,因此我无法更改现有处理程序的属性 另一件恼人的

我们正在Azure Service Fabric上构建一个主要由无状态微服务组成的应用程序。服务结构的工件之一是命名服务返回服务的一个实例的端点

如果客户端无法与该服务通信,它需要返回命名服务,获取另一个实例的端点,然后重试

因为我不希望每个开发人员都必须这样做,所以我为此创建了一个。但是,命名服务使用字符串来标识服务。将此标识符设置为处理程序上的属性将使其具有状态,因此无法再共享结果对象以调用不同的服务

由于处理程序是HttpClient类的私有,因此我无法更改现有处理程序的属性

另一件恼人的事情是,HttpClient在使用相对URL时强制使用BaseAddress属性

那么,委托处理程序是否应该不用于任何需要状态的事情(如服务发现)?有没有更好的办法解决这个问题