如何在.Net Core Console应用程序中配置代理

时间:2017-03-28 13:50:07

标签: .net proxy console-application .net-core azure-cosmosdb

在以前的.Net控制台应用程序中,我们可以通过在407中包含以下内容来避免代理app.config错误:

<system.net>
  <defaultProxy useDefaultCredentials="true"/>
</system.net>

.Net Core控制台应用没有app.config - 我们怎么能这样做呢?

专门针对Azure DocumentDB DocumentClient

2 个答案:

答案 0 :(得分:2)

VMAtm的答案对我没有任何帮助。这为我在Core 3.1上解决了这个问题:

var handler = new HttpClientHandler();
handler.DefaultProxyCredentials = CredentialCache.DefaultCredentials;    
using(var client = new HttpClient(handler))
{
    HttpResponseMessage response = await client.SendAsync();
}

答案 1 :(得分:0)

现在看起来Azure导向的团队没有实现这样的功能。以下是Azure AD library最近github问题的链接,其中说明了

  
      
  • 目前,ADAL for .NET不支持WebProxy配置。
  •   
  • 请在系统级别配置代理。 Adal使用的Httpclient应该可以使用它。
  •   
  • 制作团队计划在未来版本中添加此功能,但目前他们没有估计时间。
  •   

据我所知,Microsoft.Azure.Documents.Client命名空间或Microsoft.Azure.Documents命名空间中没有这样的功能,所以现在你必须在系统级别解决它。您可以创建github issue或通过MSDNemail与小组联系。

对于常规.Net Core应用,您可以使用HttpClientHandler类'DefaultProxyCredentials属性,因此code will be like this

var handler = new HttpClientHandler { UseDefaultCredentials = true };
using (var client = new HttpClient(handler))
{
    // http call here
}