如何将 Web 代理地址传递给 Microsoft.WindowsAzure.Storage.OperationContext.UserHeaders?

How to pass web proxy address to Microsoft.WindowsAzure.Storage.OperationContext.UserHeaders?

我正在编写一些使用 Azure 资源管理器 API 的 C# 代码,我的 CloudBlobClient 需要使用 Web 代理。根据 OperationContext.UserHeaders 属性 at https://msdn.microsoft.com/en-us/library/microsoft.windowsazure.storage.operationcontext.userheaders.aspx 的文档,UserHeaders 可用于指定代理。你能分享一下应该如何正确完成吗?

根据 Gaurav Mantri 的评论进行编辑。

下面的 Azure 客户端允许您指定要通过 httpClientHandler 使用的代理,但 CloudBlobClient 不尊重来自 StorageManagementClient 的代理信息,而且似乎没有办法将代理信息传递给 CloudBlobClient .我们的用户可能希望为多个连接指定不同的代理,但目前的架构似乎不会轻易允许这样做。

//在httpClientHandler

中使用代理信息实例化客户端的示例代码
armCompute = new ComputeManagementClient(tokenCredentials, httpClientHandler)
armStorage = new StorageManagementClient(tokenCredentials, httpClientHandler)
armNetwork = new NetworkManagementClient(tokenCredentials, httpClientHandler)
armResource = new ResourceManagementClient(tokenCredentials, httpClientHandler)
armSubscription = new SubscriptionClient(tokenCredentials, httpClientHandler)

我认为您理解有误。 documentation 状态:

Gets or sets additional headers on the request, for example, for proxy or logging information.

据我了解,您使用它来获取或设置 headers 以便您的代理理解而不是指定代理配置设置。

为了指定代理设置,您需要在应用程序配置文件中指定这些设置(web.config 或 app.config)。