我们如何在 services.AddAzureClients 上配置 HttpProxy
Posted
技术标签:
【中文标题】我们如何在 services.AddAzureClients 上配置 HttpProxy【英文标题】:How can we configure HttpProxy on services.AddAzureClients 【发布时间】:2021-10-27 07:58:40 【问题描述】:我们的 .Net 5.0 aspnetcore 启动类中有以下代码
public void ConfigureServices(IServiceCollection services)
services.AddAzureClients(builder =>
// Add a storage account client
builder.AddBlobServiceClient(storageUrl);
// Use the environment credential by default
builder.UseCredential(new EnvironmentCredential());
);
services.AddControllers();
对于 HttpClient,我们可以使用以下代码配置 httpproxy,但是我们如何为 BlobServiceClient 实现相同的功能??
services.AddHttpClient("SampleClient", client =>
client.BaseAddress = new Uri("https://sample.client.url.com");
)
.ConfigurePrimaryHttpMessageHandler(() => new HttpClientHandler
Proxy = new WebProxy("https://sample.proxy.url.com")
);
【问题讨论】:
【参考方案1】:解决方案是将带有指定代理 URI 的 BlobClientOptions 传递到 BlobServiceClient 的构造函数中。
查看此sample code,它显示了如何在 HttpClient 中指定代理
构造新的HttpClientTransport时可以将HttpClient作为参数传入,可以在BlobClientOption的Transport属性中设置,然后传入BlobServiceClient的构造函数中。
【讨论】:
设置环境变量不行吗? azure SDK 指定我们可以设置 HTTPS_PROXY,这将由 SDK 选择。我的假设是错误的,即服务客户端基本上是 azure SDK 的扩展方法?以上是关于我们如何在 services.AddAzureClients 上配置 HttpProxy的主要内容,如果未能解决你的问题,请参考以下文章
async/await 抛出 NullReferenceException 我们如何诊断我们在哪里搞砸了?