c# - 没有这样的主机是已知的-> System.Net.Http.HttpRequestException:
问题描述
我正在开发 bot 解决方案,我正在其中进行 REST 调用以从其他服务器获取一些详细信息。
在本地主机中,我的代码运行良好,但在 Azure 中发布代码后,出现以下错误:
System.Net.WebException:不知道这样的主机 不知道这样的主机 -> System.Net.Http.HttpRequestException:不知道这样的主机 -> System.Net.Sockets.SocketException:不知道这样的主机
我正在使用HttpWebRequest
选项。
我可以知道可能是什么原因吗?
解决方案
我不确定下面的解决方案是否适合您,但看起来该解决方案值得一试。这是一个可能包含有用信息的答案。看看这个答案并相应地检查您的解决方案:
问题描述:
我在运行 Windows Server 的 Azure 虚拟机上部署了一个 .NET Windows 服务,并打开了一个允许我连接到它的端口,这个服务就像一个使用套接字的服务器。问题是,当我尝试从我的 PC 连接到该托管服务器时,它不起作用,并且出现此异常: System.Net.Sockets.SocketException: 'No such host is known'。该端口已打开并且可以从我的 PC 中看到。有人能告诉我为什么我得到那个例外吗?如果我在本地运行一切正常。
答案:
异常似乎是 DNS 问题。我对 C# 不熟悉,从网络上,您可以检查以下内容:
Windows 服务正在运行,并且端口正在 Azure VM 上侦听。
该端口允许来自 PC 的出站流量和 Azure VM 上的入站流量。检查 PC 和 Azure VM 之间两侧的 VM 防火墙设置。此外,您可以按照此检查 NSG 设置。您可以使用 PC CMD 上的 telnet vmpublicIP 端口来验证网络连接。
如果您通过其 DNS 名称连接,请验证您的 PC 是否可以解析托管服务器的地址。您可以使用 NSlookup 或 DIG 来验证这一点。如果是 DNS 问题,您还可以在主机文件中添加一行(位于 Windows 上的 %WINDIR%\system32\drivers\etc 中),将托管服务器的 IP 映射到名称。希望这可以帮助。
推荐阅读
- swift - 如何以编程方式将 UILabel 和 UIImageView 添加到 CollectionView?
- javascript - 如何使用 JS 保持浏览器的离开页面警告不显示?
- json - 不再支持对inventory_quantity 和inventory_quantity_adjustment 的写入请求。请使用库存水平 API
- swift - 让用户在IOS swift中将pdf保存在应用程序之外
- javascript - 如何将固定高度的容器分为 80% 和 20%
- php - Laravel关系试图获取非对象的属性
- gun - 更新客户端中的同步更改
- azure - Azure Powershell 脚本完成,但 Azure 门户显示操作仍在进行中
- swift - NSDecimalNumber 到 UInt64 的转换问题
- python - 哪些图像处理技术有助于从这些图像中分离出数字文本?