2011-12-14 27 views
5

Xin chào, tôi cần một số lời khuyên.Thu thập số liệu thống kê trên trang web asp.net mvc?

Tôi cần một cách để theo dõi hoạt động của người dùng trên trang web của mình mà không có công cụ của bên thứ ba (chẳng hạn như google anayltics). Vì vậy, về cơ bản bất kỳ yêu cầu nào đến trang web của tôi, tôi cần kích hoạt một tác vụ không đồng bộ sẽ thu thập thông tin về người dùng và ghi vào DB. Cách tốt nhất để làm điều này là gì?

Tôi đã cố gắng viết một người ủng hộ không đồng bộ nhưng tôi không thể làm việc. Nó được nhấn nhiều lần cho mỗi yêu cầu (cho tất cả các tập tin resourse như css jpg ...).

+1

Điều này đã phục vụ tôi tốt trong 3 năm qua. http://codereview.stackexchange.com/questions/4659/optimizing-a-fire-and-forget-page-tracker Tôi đã đăng để nhận được một chút trợ giúp giúp nhanh hơn, nhưng nó đã hoạt động được 3 năm với hơn 2 triệu hàng trong bảng cho đến nay. Sẽ được nhiều hơn nhưng tôi làm prune theo thời gian. –

+0

Cảm ơn thông tin Tim. Tôi đã sử dụng bộ lọc tùy chỉnh. Rằng tôi đã đăng ký trong tập tin global.asax. – usermon

Trả lời

2

Tôi hiện đang sử dụng log4net để thực hiện tương tự.

Tôi thiết lập log4net của mình rất giống với những gì mà article đã làm. Sau đó bạn có thể tạo một thuộc tính logger thừa kế ActionFilterAttribute mà bạn có thể gắn vào bộ điều khiển của bạn, cá nhân tôi có một bộ điều khiển cơ bản mà tôi đã áp dụng thuộc tính logger của mình.

Trong thuộc tính của bạn, bạn sẽ ghi đè OnActionExecuting và ghi lại tất cả thông tin về hành động hiện đang thực hiện trong nhật ký log4net mà bạn muốn. Chỉ cần chắc chắn rằng bạn bao gồm base.OnActionExecuting (filtercontext) bạn không muốn vít lên bất kỳ hệ thống ống nước mvc, bạn chỉ cần hooking vào nó tại một điểm để làm một số khai thác gỗ.

Các vấn đề liên quan