Laden...

Net.tcp WCF Service überwachen

Erstellt von tkrasinger vor 12 Jahren Letzter Beitrag vor 12 Jahren 5.076 Views
T
tkrasinger Themenstarter:in
574 Beiträge seit 2008
vor 12 Jahren
Net.tcp WCF Service überwachen

Ich hab jetzt ein paar Netzwerk Monitore, Packetsniffer etc. probiert, aber ich bekomm es einfach nicht hin, die Packete, die zwischen meinem Client und meinem Host transferiert werden irgendwie zu überwachen.

Ich verwende als Endpunkt net.tcp://localhost:53000/MeinService oder net.tcp://MeineMaschine:53000/MeinService

hab ich irgendwelche Möglichkeiten die Messages zu sehen UND die darin enthaltenen Daten? (die seh ich nämlich im Trace nicht, selbst wenn ich logEntireMessage etc. einstelle)

6.911 Beiträge seit 2009
vor 12 Jahren

Hallo tkrasinger,

mit dem MessageLogging bei WCF kannst du auch einen gewissen Teil des Traffics (aber halt nur die Message) aufzeichnen.

Sonst gehts mit Wireshark, Network-Monitor, etc. Also allem was auf unterer Netzwerkebene mithorcht. Aber bedenke dass es die kodierten Nachrichten von WCF sind, also nicht unbedingt sofort lesbar und erkennbar ist was dort los ist.

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

T
tkrasinger Themenstarter:in
574 Beiträge seit 2008
vor 12 Jahren

Sorry, ich schaffs einfach nicht. Ich bekomm weder im NetworkMonitor noch im Wireshark irgendwelche Packete angezeigt, wenn ich Daten von meinem WCF-ServiceHost hole.
Und im normale Message-Loging seh ich absolut keine Nachrichten und ich hab extra eine "LargeData" Property in meinen DataContract eingefügt, in dem ich relativ lange Strings erzeuge.

Mach ich da irgendwelche Einstellungsfehler in den Programmen?

U
1.688 Beiträge seit 2007
vor 12 Jahren

Hallo,

versuch's mal mit RawCap: http://www.netresec.com/?page=RawCap

T
tkrasinger Themenstarter:in
574 Beiträge seit 2008
vor 12 Jahren

> RawCap

Fehlermeldung:
Unable to enter promiscuous mode (RCVALL_ON), using RCVALL_SOCKETLEVELONLY.

U
1.688 Beiträge seit 2007
vor 12 Jahren

auch als Administrator?
auch auf verschiedenen Rechnern?

T
tkrasinger Themenstarter:in
574 Beiträge seit 2008
vor 12 Jahren

am XP Rechner mit einem User mit Admin-Rechten hab ich keine Chance, kommt immer der Fehler.
aufm Win7 Rechner mit Admin-User kann ich auf einer Ethernet Schnittstelle und dem Loopback Pseudo Interface sniffen. Allerdings kommt bei der Ethernet-Schnittstelle nur Sachen durch, die mich nicht interessieren und beim Loopback gar nichts.
Meinen Traffic seh ich also immer noch nicht ...

U
1.688 Beiträge seit 2007
vor 12 Jahren
T
tkrasinger Themenstarter:in
574 Beiträge seit 2008
vor 12 Jahren

Anbei mal mein Testprojekt auf das nötigste reduziert.

R
103 Beiträge seit 2009
vor 12 Jahren

Also Wireshark konnte als ich es zum letzten Mal verwendet habe (vor ca. 2 Jahren) noch keine Daten über den Loopback 127.0.0.1 "mitsniffen". das stand aber auch damals irgendwo in der Doku.
Probiers doch einfach mal mit Client und Server auf unterschiedlichen Rechnern.

Es hilf auch nur den Port (53000 tcp ?) rauszufiltern über den die Sachen geschickt werden.
Das sis mit Wireshark recht einfach einzustellen.
Sonst gibts viel zuviel Müll, der einen gar nicht interesseiert.

U
1.688 Beiträge seit 2007
vor 12 Jahren

am XP Rechner mit einem User mit Admin-Rechten hab ich keine Chance, kommt immer der Fehler.

Keine Idee dazu.

beim Loopback gar nichts.

Hab mal statt localhost die 127.0.0.1 oder die lokale IPv4 Adresse verwendet - da geht's bei mir. Es scheint, als würde rawcap nicht über IPv6 funktionieren.

T
tkrasinger Themenstarter:in
574 Beiträge seit 2008
vor 12 Jahren

Hab mal statt localhost die 127.0.0.1 oder die lokale IPv4 Adresse verwendet - da geht's bei mir. Es scheint, als würde rawcap nicht über IPv6 funktionieren.

Das hat bei mir nun etwas gebracht, jetzt seh ich wirklich nur mehr "meinen" traffic.

Wenn ich nun:

<security mode="None"/>

mit:

<security mode="Message">
   <transport clientCredentialType="Windows"/>
   <message clientCredentialType="Windows"/>
</security>

und

<security mode="Message">
   <transport clientCredentialType="Windows" protectionLevel="EncryptAndSign"/>
   <message clientCredentialType="Windows"/>
</security>

vergleiche,
stelle ich fest, dass ich im "none" output meine "Daten" (hab da jetzt noch einen String mit allen Buchstaben groß/klein und allen Zahlen eingebaut) lesen kann. D.h. ich sehe "ABC...abc..7890" im output dieses trace. Ok.

Zwischen den beiden anderen traces kann ich jedoch nicht viel Unterschied feststellen. Soweit ich verstanden habe müsste ich doch dem "EncryptAndSign" irgendwo auch ein Zertifikat angeben? Ignoriert die WCF das dann einfach wenn sie nichts findet?

Wie gut "verschlüsselt" ist der Transport wenn ich nur Variante 2 nehme?

Danke allen für die Unterstützung!