我在运行Windows Server的Azure虚拟机上部署了.NET Windows服务,该服务具有打开的端口,允许我连接到该端口,该服务就像使用套接字的服务器。问题是,当我尝试从PC连接到该托管服务器时,它无法正常工作,并且出现以下异常:System.Net.Sockets.SocketException: 'No such host is known'
。端口已打开,并且在我的PC上可见。有人可以告诉我为什么我得到这个例外吗?如果我在本地运行,一切正常。
答案 0 :(得分:1)
该异常似乎是DNS问题。我对C#不熟悉,从网络上来说,您可以检查一下以下内容:
Windows服务正在运行,并且端口正在Azure VM上监听。
该端口允许来自PC的出站流量和Azure VM上的入站流量。检查PC和Azure VM之间的VM防火墙设置。另外,您可以按照this检查NSG设置。您可以在PC CMD上使用telnet vmpublicIP port
来验证网络连接。
NSlookup
或DIG
进行验证。如果是DNS问题,您还可以在hosts文件中添加一行(位于Windows上的%WINDIR%\system32\drivers\etc
中),以将托管服务器的IP映射到名称。希望这会有所帮助。