如何?ASP.NET中網站訪問量的統計

來源:互聯網
上載者:User

下面介紹如何進行ASP.NET中網站訪問量的統計。

一、建立一個資料表IPStat用於存放使用者資訊

我在IPStat表中存放的使用者資訊只包括登入使用者的IP(IP_Address),IP來源(IP_Src)和登入時間(IP_DateTime),些表的資訊本人只儲存一天的資訊,如果要統計每個月的資訊則要儲存一個月。因為我不太懂對資料日誌的操作,所以建立此表,所以說我笨吧,哈哈。

二、在Global.asax中擷取使用者資訊

在Global.asax的Session_Start即新會話啟用時擷取有關的資訊,同時在這裡實現線上人數、訪問總人數的增量統計,代碼如下:

void Session_Start(object sender, EventArgs e) {

//擷取訪問者的IP

string ipAddress = Request.ServerVariables["REMOTE_ADDR"];

//擷取訪問者的來源

string ipSrc;

//判斷是否從搜尋引擎導航過來的

if (Request.UrlReferrer == null) {

ipSrc = "";

}

else {

//擷取來源地址

ipSrc = Request.UrlReferrer.ToString();

}

//擷取訪問時間

DateTime ipDatetime = DateTime.Now;

//儲存IP資訊到資料庫中

IPControl cont = new IPControl();

cont.AddIP(ipAddress, ipSrc, ipDatetime);

//擷取使用者訪問的頁面

string pageurl = Request.Url.ToString();

//判斷訪問的是否是預設頁

if (pageurl.EndsWith("IPStat.ASPx")) {

//鎖定變數

Application.Lock();

//為頁面訪問量+1

Application["StatCount"] = int.Parse(Application["StatCount"].ToString()) + 1;

//解鎖

Application.UnLock();

}

//鎖定變數

Session.Timeout = 10;

//設定逾時為10分鐘

Application.Lock();

Application["countSession"] = Convert.ToInt32(Application["countSession"]) + 1;

//訪問總人數+1

Application["onlineWhx"] = (int)Application["onlineWhx"] + 1;

//線上人數加+1

Session["login_name"] = null;

//解鎖

Application.UnLock();

}

提醒一句,別忘了下面的代碼,以實現在使用者離線時,將線上人數減去1。

void Session_End(object sender, EventArgs e) {

// 在會話結束時啟動並執行代碼。

// 注意: 只有在 Web.config 檔案中的 sessionstate 模式設定為 InProc 時,

才會引發 Session_End 事件。

如果會話模式設定為 StateServer

// 或 SQLServer,則不會引發該事件。

//鎖定變數

Application.Lock();

Application["onlineWhx"] = (int)Application["onlineWhx"] - 1;

//線上人數減-1

Session["login_name"] = null;

//解鎖

Application.UnLock();

}

三、將以上有關資訊儲存到資料庫IPStat

ASP.NET中網站訪問量統計的最後一個實現步驟,就是建立了一個擷取IP資料資訊的類IPControl(),用來實現對資料庫IPStat資料的操作,關於IPControl()類的內容,因為它是C#中對資料庫的操作,以解sql server 資料庫,就能看懂它,這裡就不作介紹了,請點擊該連結查看。

為了實現將使用者IP資訊存入資料庫,在上面代碼中對IPControl()進行調用

//儲存IP資訊到資料庫中

IPControl cont = new IPControl();

cont.AddIP(ipAddress, ipSrc, ipDatetime);

參數ipAddress為使用者IP,ipSrc為使用者來源, ipDatetime為使用者進入時間。

以上就實現了ASP.NET中網站訪問量的統計。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.