Web 应用内的 Azure 主机名解析

Web 应用内的 Azure 主机名解析

在过去的几天里,我们在解析主机名时遇到了一些问题。

我们创建了一个非常简单的 .aspx 页面来尝试解析google.com,有时候我们会收到正确的 IP,但其他时候我们会收到此错误:

System.Net.Sockets.SocketException(0x80004005):在 System.Net.Dns.InternalGetHostByName(String hostName,Boolean includeIPv6)处在 System.Net.Dns.Resolve(String hostName)处在 ASP._diagnostics_dns_aspx.HostName2IP(String hostname)处在 ASP._diagnostics_dns_aspx.Resolve(Object sender,EventArgs e)处没有发现这样的主机

解析内部 Azure 主机名(*.cloudapp.azure.com)或其他主机名(microsoft.com,...)时会出现同样的问题。

我们怀疑应用程序托管的其中一个实例(我们目前有 2 个实例)的 DNS 解析出现故障。

您可以在此处看到完整的 aspx 页面代码:https://gist.github.com/davideicardi/6d3f5bf45efaeea0e2a03cba58beec5f

但基本上它使用以下代码来解析请求的主机名:

  private string HostName2IP(string hostname)
  {
      var iphost = System.Net.Dns.GetHostEntry(hostname);
      var addresses = iphost.AddressList;
      var addressList = new System.Text.StringBuilder( );
      foreach(var address in addresses)
      {
          addressList.Append("IP Address: ");
          addressList.Append(address.ToString( ));
          addressList.Append(";");
      }
      return addressList.ToString( );
  }

有什么想法吗?可能是我们破坏了某些配置,或者 Azure 存在问题?

更新:如果我在 Kudu PowerShell 控制台中使用[System.Net.Dns]::GetHostEntry("google.com")或使用,nslookup名称始终会得到解析。这似乎只是与我的网站相关的问题。我在两个实例上都尝试过了。

答案1

我有一张 MS 的未结票据,似乎可以证实这是 Azure 方面的错误。

相关内容