2013-03-15 7 views
6

Ich bin verwirrt, warum etwas funktioniert. Ich bin ein WCF-Dienst wie folgt konfigurieren:WCF Service Endpunkt localhost Verwirrung

<services> 
    <service name="ClientCommand" behaviorConfiguration="SomeServiceBehavior"> 
    <endpoint contract="IClientCommand" binding="netTcpBinding" BindingConfiguration="TcpPort" address="net.tcp://localhost:1304" /> 
    </service> 
</services> 

Die BindingConfiguration und behaviorConfiguration sind sehr einfach, nur einige Timeouts konfigurieren.

In meiner exe starte ich den Host so.

_serverHost = new ServiceHost(type); // implementing IClientCommand 
_serverHost.Open(); 

Es ist alles ziemlich einfach und es funktioniert, kann ich diesen Dienst von einem anderen PC anrufen. Nach dem Lesen eines anderen Problems (tcp-Sockets hören) habe ich jedoch den Eindruck, dass es nicht funktionieren sollte. Wie bin ich verbindlich an localhost der Service sollte nicht zugänglich sein von außerhalb des PCs läuft es auf?
Ich überprüfte Netstat auf dem PC und es gebunden an IP-Adresse "0.0.0.0" statt "127.0.0.1" zu erklären, warum es von einem anderen PC funktioniert.

Aber ich verstehe nicht, warum es von localhost zu "0.0.0.0" geht?

+0

Ich grub ein wenig tiefer, nur um mehr verwirrt zu werden. Wenn ich 'net.tcp: // 127.0.0.1/service' verwende, wird es tatsächlich an den Loopback gebunden und es ist nicht von außerhalb des PCs erreichbar. "Net.tcp: // localhost/service" wird jedoch an 0.0.0.0 gebunden und von außerhalb des Loopbacks erreichbar sein. Warum? – Greuntesop

Antwort

0

Net.tcp ist nicht auf Kommunikation auf einer Maschine beschränkt, vielleicht denken Sie an net.pipe? Bezüglich 0.0.0.0: Wie ist die Host-Datei auf dem Rechner definiert, auf dem der Dienst läuft? Here ist ein schöner Artikel über WCF im Allgemeinen.

+0

Hallo, ich sage nicht net.tcp beschränkt sich auf die Kommunikation auf einer Maschine. Ich sage, dass, wenn Sie net.tcp verwenden: // localhost: ... sollte es an die Loopback-Adresse gebunden sein und nicht von außerhalb des PCs erreichbar sein. Aber es ist. – Greuntesop

Verwandte Themen