簡體   English   中英

如何在任何給定時間找到站點(IIS7 / asp.net)的訪問者/用戶數?

[英]How can I find number of visitors/users at my site (IIS7/asp.net) at any given moment?

我需要顯示有多少用戶正在瀏覽我的網站。 該站點在iis7上運行,我們正在使用asp.net 3.5。

活動會話的數量是否是一個好方法? 該數字不必非常准確。

不需要歷史記錄,我只想知道現在有多少用戶“在線”,並將其顯示在頁面本身上。

您可以為此使用Windows Performance計數器(性能)

ASP.NET應用程序>會話活動計數器。

您可以使用System.Diagnostics命名空間訪問這些性能計數器。

這段代碼對我有用:

        PerformanceCounter pc = new PerformanceCounter("ASP.NET Applications",
     "Sessions Active", "__Total__", "MYSERVERHOSTNAME.domain");

        while (true)
        {
            Console.WriteLine(pc.NextValue());
            System.Threading.Thread.Sleep(1000);
        }

我遇到了這個問題,因此如果計數器似乎過高,請看這里: http : //support.microsoft.com/kb/969722

作為一般原則,您必須定義在線用戶數的含義。

例如,會話通常持續預定義的持續時間,例如30分鍾。 根據您希望用戶在您的站點上停留多長時間,會話的持續時間可能很大程度上歸因於用戶不在您的站點上時的空閑時間。

通常,您希望最近n分鍾內一直在線的人。 會話會在一段時間內為您提供此統計信息(配置的會話到期),但是還有許多其他時間度量可能更相關。

實現此目的的一種方法是簡單地使IIS日志將其數據推入數據庫中的表中,而不是將其推到本地文件系統中。 這在Web服務器級別很容易配置。

然后,您可以輕松地繪制圖形並顯示全天,當前,每周等的使用情況。

當然,如果您的網站流量很高,那么這將導致收集大量數據。

對於EPiServer網站,您可能需要查看Live Monitor: http : //www.episerver.com/add-on-store/episerver-live-monitor/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM