2011-12-14 18 views
5

Merhaba Biraz öneriye ihtiyacım var.Bir asp.net mvc sitesinde İstatistikleri Toplama?

Sitemde, üçüncü taraf araçları olmadan (google anayltics gibi) kullanıcı etkinliğini izlemenin bir yoluna ihtiyacım var.

Temelde siteme gelen herhangi bir istek, kullanıcı hakkında bilgi toplayacak ve DB'ye yazacak bir eşzamansız görevden vazgeçmem gerekiyor. Bunu yapmanın en iyi yolu nedir?

Bir async httphandler yazmayı denedim, ancak çalışamadım. Her istek için birden çok kez vuruldu (css jpg ... gibi tüm kaynak dosyaları için).

+1

Bu bana son 3 yılda iyi hizmet etti. http://codereview.stackexchange.com/questions/4659/optimizing-a-fire-and-forget-page-tracker Biraz daha yardım etmek için biraz yardım aldım, ancak 2 milyondan fazla satırda 3 yıldır çalışıyordum Tabloda şimdiye kadar. Daha fazla olurdu ama zaman zaman eritiyorum. –

+0

Bilgi için teşekkürler Tim. Özel bir filtre kullanarak sona erdi. Global.asax dosyasına kaydettiğim. – usermon

cevap

2

Şu anda benzer bir şey yapmak için log4net kullanıyorum.

Log4net'imi bu article'un yaptıklarına çok benzer şekilde kuruyorum. Bundan sonra, denetleyicilerinize ekleyebileceğiniz ActionFilterAttribute öğesini devralan bir Kaydedici Özniteliği yaratabilirsiniz, ben kişisel olarak logger özniteliğime uygulayacağım bir temel denetleyicim var.

Özniteliğinizde, OnActionExecuting'i geçersiz kılacak ve log4net günlüğünde istediğiniz yürütme eylemiyle ilgili tüm bilgileri kaydedeceksiniz. Sadece mvc sıhhi tesisat herhangi bir vidalamak istemiyorsanız base.OnActionExecuting (filtercontext) eklediğinizden emin olun, sadece bir giriş yapmak için bir noktada içine kancalama.