我可以通过127.0.0.1接收带有UdpClient
对象的NLog消息,但不能接收本地主机。
我的NLog.config文件中的目标是:
<!-- this works -->
<target name="<MyLogger" type="Chainsaw" address="udp://127.0.0.1:7777"/>
<!-- this does not work, no messages received -->
<!--<target name="MyLogger" type="Chainsaw" address="udp://localhost:7777"/>-->
我尝试了各种方法来打开/配置我的UdpClient
对象,包括:
// this way
_udpClient = new UdpClient(settings.Port);
// this way
_endPoint = new IPEndPoint(IPAddress.Any, settings.Port);
/// this way
_udpClient = new UdpClient();
_endPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), settings.Port);
_udpClient.Client.Bind(_endPoint);
我已尝试过上述所有内容以及多种变体。
我知道我可以在配置文件中使用localhost,因为它可以与另一个NLog客户端Log2Console一起使用。我的配置文件中有Log2Console的行,只有目标名称不同(MyLogger&lt; =&gt; Log2Console)。 127.0.0.1和localhost都与Log2Console一起使用。
我担心我做的事情是愚蠢的,但看不到它。
答案 0 :(得分:0)
可能localhost
将解析IP V6地址(::1
),因此侦听器也应该听取该地址。
您可以使用udp4://localhost:7777
强制使用IP V4,请参阅the docs