2010-09-21 31 views
5

Je n'arrive pas à déchiffrer un fichier de trace WCF et j'espère que quelqu'un pourra m'aider à déterminer où je suis en train de subir une latence. La trace de "Processing Message XX" est illustrée ci-dessous, où il semble y avoir un retard de 997ms entre la limite d'activité et le transfert vers "Process Action" où mon code de service est exécuté (environ 50 ms).Analyse WCF Trace Log - aide

Processing Message trace

D'abord, je ne suis pas sûr si je suis juste à comprendre la colonne « temps » pour représenter le temps de démarrage de l'élément d'activité. Je crois que c'est le cas car percer dans la trace "Traitement de l'action" affiche une liste d'activités avec le premier horodatage égal à l'horodatage indiqué dans la trace ci-dessus pour l'élément "Traitement de l'action".

Ma première question est la suivante: comment puis-je déterminer ce qui se passe pendant cette période de 997 ms? Comme je l'ai lu à propos de la visionneuse de trace de service, il semble que ce type d'activité implique un «transport ou traitement de sécurité», ce qui me porte à croire qu'il s'agit d'un problème de réseau, mais je ne peux en être sûr. Dans le cas où cela est pertinent, vous trouverez ci-dessous un instantané de la descente vers la trace "Traiter l'action".

Processing Action trace

Quelqu'un at-il une idée sur la façon de forer plus loin dans cette activité pour déterminer la cause du retard?

(Je dois mentionner que le temps de réponse varie de ~ 60 ms à plus d'une seconde, et il semble que de le faire dans un environnement spécifique, ce qui m'a aussi conduit à l'idée d'un problème de réseau)

Merci d'avance!

Répondre

0

Je suggère d'ajouter une source de trace supplémentaire spécifiquement les sources de traces de traçage réseau voir How to: Configure Network Tracing

Vous pouvez System.Net et System.Net.Sockets. Cela devrait aider à corroborer votre problème de réseau. En passant, vous avez mentionné que l'activité en question implique le transport ou le traitement de sécurité. J'ai découvert que si vous utilisez la sécurité basée sur des certificats pour les identités client ou la sécurité des messages à l'aide de certificats, le canal WCF peut être affecté. par la latence de traverser la chaîne de certificats pour vérifier les certificats. Cela peut ne pas s'appliquer à vous, car vous n'utilisez peut-être pas de sécurité basée sur des certificats.

2

J'avais le même problème. Mes temps de transfert allaient de 100 à 4 secondes. J'ai installé Wireshark sur le serveur et j'ai vu de nombreuses erreurs de transmission de paquets réseau. Il était impressionnant que la pile réseau puisse tout trier et que les messages soient finalement transmis. Finalement, j'ai remarqué que le paramètre "Speed ​​and Duplex" pour le pilote NIC du serveur était réglé sur 100Mb Full. Le client test était chez Auto et il y avait quelques commutateurs entre eux. Je pense que tous les appareils pourraient régler cela, mais évidemment pas. La modification de la valeur du serveur sur Auto a résolu les erreurs réseau et les délais de transfert de trace ont disparu.