首页 > 解决方案 > 没有这样的主机是已知的-> System.Net.Http.HttpRequestException:

问题描述

我正在开发 bot 解决方案,我正在其中进行 REST 调用以从其他服务器获取一些详细信息。

在本地主机中,我的代码运行良好,但在 Azure 中发布代码后,出现以下错误:

System.Net.WebException:不知道这样的主机 不知道这样的主机 -> System.Net.Http.HttpRequestException:不知道这样的主机 -> System.Net.Sockets.SocketException:不知道这样的主机

我正在使用HttpWebRequest选项。

我可以知道可能是什么原因吗?

标签: c#.netazurerestbotframework

解决方案


我不确定下面的解决方案是否适合您,但看起来该解决方案值得一试。这是一个可能包含有用信息的答案。看看这个答案并相应地检查您的解决方案:

问题描述:

我在运行 Windows Server 的 Azure 虚拟机上部署了一个 .NET Windows 服务,并打开了一个允许我连接到它的端口,这个服务就像一个使用套接字的服务器。问题是,当我尝试从我的 PC 连接到该托管服务器时,它不起作用,并且出现此异常: System.Net.Sockets.SocketException: 'No such host is known'。该端口已打开并且可以从我的 PC 中看到。有人能告诉我为什么我得到那个例外吗?如果我在本地运行一切正常。

答案:

异常似乎是 DNS 问题。我对 C# 不熟悉,从网络上,您可以检查以下内容:

  1. Windows 服务正在运行,并且端口正在 Azure VM 上侦听。

  2. 该端口允许来自 PC 的出站流量和 Azure VM 上的入站流量。检查 PC 和 Azure VM 之间两侧的 VM 防火墙设置。此外,您可以按照此检查 NSG 设置。您可以使用 PC CMD 上的 telnet vmpublicIP 端口来验证网络连接。

  3. 如果您通过其 DNS 名称连接,请验证您的 PC 是否可以解析托管服务器的地址。您可以使用 NSlookup 或 DIG 来验证这一点。如果是 DNS 问题,您还可以在主机文件中添加一行(位于 Windows 上的 %WINDIR%\system32\drivers\etc 中),将托管服务器的 IP 映射到名称。希望这可以帮助。

.NET 服务 System.Net.Sockets.SocketException:'没有这样的主机是已知的'


推荐阅读