2016-09-19 86 views
0

我可以通過127.0.0.1而不是本地主機接收到NLog消息,而我的UdpClient對象通過127.0.0.1。本地主機不適用於NdLog的UdpClient

從我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 < => Log2Console)。 Log2Console都使用127.0.0.1和localhost。

我擔心我在做一些愚蠢的事情,但看不到它。

回答

0

可能localhost將解析IP V6地址(::1),因此偵聽器也應該聽那個。

您可以使用udp4://localhost:7777強制IP V4,請參閱the docs

相關問題