2009-01-25 7 views
4

Sur un site Web ASP.NET MVC, quelle est la meilleure façon d'implémenter la consignation d'accès? Je veux répondre aux questions suivantes:ASP.NET MVC: Journaux d'accès

  1. Quelles sont les pages les plus populaires?
  2. Quelles pages ont été consultées au cours des dernières 24 heures?
  3. etc.

Je pourrait Connexion au serveur via Remote Desktop et percez via le serveur IIS me connecte (même en utilisant Microsoft Logfile Parser), mais je voudrais être en mesure d'exécuter des rapports de les pages d'administration de mon site.

Quelle est la meilleure façon de faire cela? Devrais-je:

  1. Ajouter un suivi à toutes mes méthodes de contrôleur?
  2. Ajouter un IHttpFilter (ou quoi que ce soit) et avoir faire la journalisation?
  3. Configurer IIS (IIS7 sous Windows 2008) pour se connecter à une table de ma base de données, puis définir un mappage NHibernate pour cette table?
  4. Quelque chose d'autre?

Répondre

0

La réponse de Sebastian est certainement pas mal (mise a voté), cependant, il est à nouveau la mise en œuvre des fonctionnalités déjà disponibles dans IIS. La journalisation de IIS fonctionnera probablement mieux que quelque chose de chez soi aussi. (Par exemple, il enregistre les données qui ne passent pas par la pile MVC.) Pour cette raison, je préférerais utiliser quelque chose dans le sens de votre option 3.

+0

Sûrement que cela rend le site plus dépendant de facteurs externes. Que se passe-t-il quand/si le MVC est porté sur Mono? Juste une pensée. – Kieron

+0

Eh bien, je pense que c'est vrai. Ne le faites pas vous-même et n'utilisez pas de fonctionnalité intégrée résoudra tous les problèmes. Chacun a ses avantages et désavantages. C'est pourquoi j'ai voté pour la réponse de Sebastian et pour avoir écrit la mienne. :) –

0

Pourquoi ne pas simplement utiliser [Google Analytics]? http://www.google.com/analytics/) À mon avis, un moyen beaucoup plus simple d'obtenir ces statistiques. De plus, vous aurez une mine d'informations sur les bonus. Sans compter que vous avez accès à n'importe où dans le monde.

0

Je compile la journalisation strictement côté serveur. Vous avez besoin d'un code côté client à exécuter pour compter les rechargements de cache et autres. C'est pourquoi tous les outils d'analyse Web modernes (tels que Google Analytics et bien d'autres) ont également un élément de code client.

Le cache de sortie peut également être pénible lors de la journalisation si vous n'insérez pas de module HttpModule avant le module de cache de sortie et ainsi de suite.