2011-06-28 6 views

答えて

2

あなたは、データベース内のいくつかの情報を格納する必要があります:

ビジターIPアドレス、URL(ページのユーザー/ゲストが訪れ手段)

は、すべてのページのための関数を作成し、あなたの合計数を示して訪問あなたのデータベースの列訪問URLとIPアドレスに基づいています。

だけのページへの訪問者の数を追跡しますが、あなたはユニーク訪問したい。この場合は拡張することができます(下記)のような何か:またあなたがインクリメントストアドプロシージャを呼び出すことができます

void Session_Start(object sender, EventArgs e) 
{ 
    // More secure than storing it application variables(does not rest on application start 
    SqlConnection con = null; 
    SqlCommand cmd = null; 
    try 
    { 
     con = new SqlConnection(); 
     con.ConnectionString = "your connection string"; 
     cmd = new SqlCommand(); 
     cmd.Connection = con; 
     con.Open(); 
     cmd.CommandText = "Update tbl_users Set no_of_users=no_of_users+1"; 
     cmd.ExecuteNonQuery(); 
    } 
    catch (Exception) 
    { 
     throw; 
    } 
    finally 
    { 
     if (con.State.Equals(ConnectionState.Open)) con.Close(); 
    }  
} 

を訪問回数。

2

あなたはいつもGoogle Analyticsを使用することができます:あなたは正確にユニークビジターを識別することはできませんのでhttp://www.google.com/analytics/

1

私は、難しいですユニークビジターを数えるAWStatsのhttp://awstats.sourceforge.net/

のようなツールを使用します。あなたは推測することができます(IP、Cookies、UserAgendなど)。

カウントセッションの開始をカウントすることで訪問者をカウントすることができます。しかし、あなたの訪問者が一時的なものを受け入れない場合。クッキー、あなたは訪問者をあまりにも多くカウントします。

2

ASP.NET MVCのセッション変数、SQL Serverデータベースを使用してこれを実行できました。

注:クライアントIPアドレスを保存する代わりにセッション変数を使用しました。すべてのクライアントアドレスを保存すると、データベースがオーバーフローします。これは、右上のすべての質問に表示されるStackoverflowページの表示プロパティと同様に機能します。

これは私のために働いた方法です。

  • ユーザがあなたのウェブサイト内の特定のウェブページを開くと、カウンタが増分され、更新されたカウントがSQLサーバデータベース(それは他のデータベースでもよい)テーブルで更新されます。
  • 同じユーザーが同じセッション内で同じWebページを再度訪問すると、カウンタは処理されません。つまり、ユーザーが同じセッションで複数回Webページを更新した場合、そのユーザーによる1回の訪問であるため、カウンタは増分されません。
  • 同じ訪問者がセッションを終了して(ブラウザを閉じたとします)、同じWebページを再度開くと、カウンタは別の訪問として考慮されます。

これを実行するための手順は次のとおりです。

  1. アクションメソッドごとに自動的に呼び出されるメソッドがあります。
  2. このメソッドの内部では、セッションがまだ終了していない場合はセッションを開始し、ユーザーがこのページに既にアクセスしているかどうかを確認します。
  3. これに応じてカウンタ変数を適宜更新し、必要に応じてカウントをdbに保存します。

これは私が従った完全な手順です。それが役に立てば幸い。

ソース:Count number of visitors of a page in asp.net mvc (HIT counter)

関連する問題