Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Net.tcp WCF Service überwachen
tkrasinger
myCSharp.de - Member



Dabei seit:
Beiträge: 582
Herkunft: Enzesfeld (Niederösterreich)

Themenstarter:

Net.tcp WCF Service überwachen

beantworten | zitieren | melden

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)
private Nachricht | Beiträge des Benutzers
gfoidl
myCSharp.de - Team

Avatar #avatar-2894.jpg


Dabei seit:
Beiträge: 7559
Herkunft: Waidring

beantworten | zitieren | melden

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!"
private Nachricht | Beiträge des Benutzers
tkrasinger
myCSharp.de - Member



Dabei seit:
Beiträge: 582
Herkunft: Enzesfeld (Niederösterreich)

Themenstarter:

beantworten | zitieren | melden

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?
private Nachricht | Beiträge des Benutzers
ujr
myCSharp.de - Experte



Dabei seit:
Beiträge: 1770

beantworten | zitieren | melden

Hallo,

versuch's mal mit RawCap: http://www.netresec.com/?page=RawCap
private Nachricht | Beiträge des Benutzers
tkrasinger
myCSharp.de - Member



Dabei seit:
Beiträge: 582
Herkunft: Enzesfeld (Niederösterreich)

Themenstarter:

beantworten | zitieren | melden

> RawCap
Fehler
Unable to enter promiscuous mode (RCVALL_ON), using RCVALL_SOCKETLEVELONLY.
private Nachricht | Beiträge des Benutzers
ujr
myCSharp.de - Experte



Dabei seit:
Beiträge: 1770

beantworten | zitieren | melden

auch als Administrator?
auch auf verschiedenen Rechnern?
private Nachricht | Beiträge des Benutzers
tkrasinger
myCSharp.de - Member



Dabei seit:
Beiträge: 582
Herkunft: Enzesfeld (Niederösterreich)

Themenstarter:

beantworten | zitieren | melden

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 ...
private Nachricht | Beiträge des Benutzers
ujr
myCSharp.de - Experte



Dabei seit:
Beiträge: 1770

beantworten | zitieren | melden

Wie sieht's mit einem minimalen Testprojekt aus?
[Tutorial] Vertrackte Fehler durch Vergleich von echtem Projekt mit minimalem Testprojekt finden
private Nachricht | Beiträge des Benutzers
tkrasinger
myCSharp.de - Member



Dabei seit:
Beiträge: 582
Herkunft: Enzesfeld (Niederösterreich)

Themenstarter:

beantworten | zitieren | melden

Anbei mal mein Testprojekt auf das nötigste reduziert.
Attachments
private Nachricht | Beiträge des Benutzers
rasepretrep
myCSharp.de - Member



Dabei seit:
Beiträge: 105

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers
ujr
myCSharp.de - Experte



Dabei seit:
Beiträge: 1770

beantworten | zitieren | melden

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

Keine Idee dazu.
Zitat von tkrasinger
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.
private Nachricht | Beiträge des Benutzers
tkrasinger
myCSharp.de - Member



Dabei seit:
Beiträge: 582
Herkunft: Enzesfeld (Niederösterreich)

Themenstarter:

beantworten | zitieren | melden

Zitat von ujr
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!
private Nachricht | Beiträge des Benutzers