2009-03-30 14 views
1

私は自分のサイト全体に行った訪問(または訪問者ではなく、ページリクエストまたはヒット)の数をカウントしたいと思います。最も簡単な訪問カウンターは何ですか?

今後、このデータを含むグラフィックを表示するために、各訪問をデータベースに保存します。

また、信頼性が高く、高速で、ページリクエストごとにデータベースにポーリングする必要はありません。だから、私はいくつかのエントリーポイントにいくつかのコードを入れなければならないと思うが、Global.asaxイベントAppEndRequestではなく、どこにいるのか分からない。私はSessionStartまたはSessionEndイベントをコード化すると思います。

この訪問カウンターはどのようにすればいいですか?

答えて

0

Syedの提案では、訪問者の番号がになりますが、Jhonny'sはページヒットあなたはあなたが後になっているものを決定したいかもしれません。

あなたが訪問者を求めているとすれば、私はSyedに同意し、Session_Startをグローバルで捕捉し、データベース内の数字を増やします。

あなたは、データベース内の余分な情報を保存する場合は、より多くの有用な情報を得ることができる - 例えば、このようなテーブル:あなたが数を確認することができますので、

tblVisitor 
- SessionID nvarchar(32) 
- SessionStart datetime 

は、これはおそらく、単にカウンタをインクリメントするよりも良いだろう訪問先先月または今年はなど、時刻の使用状況に関する情報も取得します。

しかし、あなたは最も簡単な方法を求めていましたが、簡単なカウンタで確実に達成できました。

0

データベースのカウンタ値を更新するだけで済みます。 データベースでセッション開始と更新カウンタの値を1で使用することができます。

-1

グローバル変数をGlobal.asaxに配置し、Application_OnEndRequestとそれ以外のページにインクリメントして値を保存することができると思います管理タスクとしてデータベースに追加します。

void Application_OnEndRequest(object sender, EventArgs e) { 
    int visits; 
    if (int.TryParse(Application["visits"], out visits)) { 
     visits++; 
    } else { 
     visits = 1; 
    } 
    Application["visits"] = visits; 
} 
+0

に役立ちます願っています。 – Juliet

+0

私は彼がシンプルさを求めていると思います。だれかが各リクエストを保存したり、データベースにアクセスしたりヒットしたりできますが、すべてのリクエストでデータベースをポーリングしたくない...スレッドセーフでMonitor.Lockを呼び出すことができます。そのようなもの –

1

独自のソフトウェアを使用するか、既存のログ解析ソフトウェアを使用して、既存のサーバーログを解析できます。私は、MicrosoftのLog Parserが必要に応じてログをSQLに変換できることを知っています。ログが理解できない形式であれば、単純なcomオブジェクトを使用して解析を実行することができます。

+0

それは多くの仕事、良いアイデアを保存するだろう。ログにはセッション情報が含まれていますか(訪問者トラッキング)、またはページリクエスト情報(ヒットトラッキング)だけですか? –

+0

ほとんどの場合、IPアドレスが含まれていますが、トラッキングするだけです。 – Brian

5

Googleアナリティクスなどを使用してください。それは最も簡単な解決策です。

+0

+1 Googleアナリティクスの岩石。 –

0

一般的に私は、訪問者分析でが良いである第三者からの無料サービスを利用することが最もよいことを一般原則で同意します。 Googleアナリティクス以外にも、Quantcastをご検討ください。

関連する問題