首页 > 解决方案 > Docker抛出异常作为远程名称无法解析

问题描述

我创建了一个基本的 .net 框架 MVC Web 应用程序,并添加了使用Cloud Watch Logs SDK将日志发送到 AWS Cloud Watch Logs 的逻辑,它在 localsystem/localhost 中运行良好,但是一旦我对图像进行 dockerize,我就开始出现异常。请指导我解决问题。

代码:

    public static AmazonCloudWatchLogsClient logClient = new AmazonCloudWatchLogsClient("YYYYY",
                "XXXXX",
                RegionEndpoint.USEast1); 
    public ActionResult Index()
    {
        // Code removed for brevity sake
        var logGroup = logClient.DescribeLogGroups(); // This throws exception
        return View();
    }

例外:

Amazon.Runtime.AmazonServiceException:'引发了状态为 NameResolutionFailure 的 WebException。WebException:无法解析远程名称:'logs.us-east-1.amazonaws.com''

标签: c#.netamazon-web-servicesdockeramazon-cloudwatch

解决方案


我必须在 web.config 中添加以下代码行来解决问题。

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

解释 - Docker 不为外界所知,所以当 API 请求来自 dockerized 应用程序时,它只会到达本地系统,因此失败。但是在启用代理之后,我们托管 docker 的系统充当了 docker 请求的代理。


推荐阅读