localhost不能使用UdpClient for NLog

时间:2016-09-19 22:25:04

标签: localhost nlog udpclient

我可以通过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一起使用。

我担心我做的事情是愚蠢的,但看不到它。

1 个答案:

答案 0 :(得分:0)

可能localhost将解析IP V6地址(::1),因此侦听器也应该听取该地址。

您可以使用udp4://localhost:7777强制使用IP V4,请参阅the docs