2010-09-13 4 views
1

J'essaie de mesurer la quantité de données envoyées et reçues par un HttpWebRequest (et une réponse). Pour autant que je sache, il est uniquement possible de connaître la longueur du contenu de la requête et de la réponse, c'est-à-dire le corps et non l'en-tête.HttpWebRequest IO/Utilisation de la bande passante C#

Est-ce que quelqu'un sait comment obtenir la pleine longueur? Soit l'en-tête et le corps à sommer ou éventuellement juste un moyen de mesurer tous les E/S réseau du fil ou du processus?

Répondre

0

Résumé en-tête & Le corps peut donner la réponse que vous recherchez. Mesurer nio n'est pas une approche recommandée, car il a besoin de privilèges élevés pour votre application & assembly; chaque fois que possible une application & ses assemblées devraient seulement utiliser le plus bas niveau de sécurité possible pour effectuer l'intention de l'application et pas plus. Dans le scénario privilégié élevé suppose nécessairement que vous avez un accès de Dieu à la machine (root/domaine admin/etc).

ref 1: http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.contentlength.aspx

ref 2: http://msdn.microsoft.com/en-us/library/system.net.webheadercollection.aspx

+0

Merci pour votre réponse, il est dommage qu'il ne semble y avoir qu'une méthode aussi grossière. Malheureusement, la mesure des en-têtes à l'aide de la collection d'en-têtes n'obtient pas la ligne initiale PUT/GET/POST. Je sais que cela semble trivial mais la précision est subjectivement importante lors de la mesure ... –

0

Avez-vous regardé les compteurs de performance System.Net?

EDIT:

System.net expose déjà les compteurs pour cette perf. Si vous commencez à « perfmon.exe » et allez à la catégorie « .NET CLR en réseau », vous verrez les compteurs suivants:

  1. Octets envoyés
  2. Octets reçus
  3. connexions établies
  4. datagrammes envoyés
  5. datagrammes reçus

Cela devrait vous donner tout ce dont vous avez besoin.

+0

Pas en détail. Trouvé http://blogs.msdn.com/b/ncl/archive/2009/08/07/new-performance-counters-for-httpwebrequest.aspx mais n'ajoute toujours pas ce dont j'ai besoin ... –

Questions connexes