Asp.net 使用MS Access&;活动会话

Asp.net 使用MS Access&;活动会话,asp.net,session,ms-access,hitcounter,Asp.net,Session,Ms Access,Hitcounter,我正在尝试为我的网站创建一个点击计数器 我在网上看过很多例子,但大多数都没有我要找的正确的表格 例如,在我创建的大多数命中计数器上,我只需按刷新,命中率就会上升。我不想那样。 我还尝试使用.xml文件,但没有成功。我只要按住F5键,我的点击率就会不断上升。 所以我知道我需要使用数据库。我计划使用MS Access数据库,因为它很小(只有一个表),并且在发布时可以很容易地放在网站上 我对如何添加热门歌曲有一个大致的想法: OleDbConnection conn = null; OleDbData

我正在尝试为我的网站创建一个点击计数器

我在网上看过很多例子,但大多数都没有我要找的正确的表格

例如,在我创建的大多数命中计数器上,我只需按刷新,命中率就会上升。我不想那样。 我还尝试使用.xml文件,但没有成功。我只要按住F5键,我的点击率就会不断上升。 所以我知道我需要使用数据库。我计划使用MS Access数据库,因为它很小(只有一个表),并且在发布时可以很容易地放在网站上

我对如何添加热门歌曲有一个大致的想法:

OleDbConnection conn = null;
OleDbDataReader reader = null;
try
{
    conn = new OleDbConnection(
    "Provider=Microsoft.Jet.OLEDB.4.0; " + 
    "Data Source=" + Server.MapPath("App_Data/TestDB.mdb"));
    conn.Open();

    OleDbCommand cmd = 
    new OleDbCommand("insert into Hits Values(" + hits + "", conn);
    cmd.ExecuteNonQuery();

}
catch (Exception e)
{
    Response.Write(e.Message);
    Response.End();
}
应该是这样的。我希望它类似于SQL。 无论如何,我的问题是,当用户返回到该页面(主页)时,命中计数器会增加。 我听说过活动会话,不知道这是否是我应该使用的。如果这是正确的方法,我如何在我的站点上完全实现它? 基本上,我如何确保Bob登录并使用该站点,访问所有页面5次,并且点击计数器只注册一次?因此,当Jane登录到该站点时,她会看到她是第二个查看该站点的人(仅次于Bob)

会不会是这样的:

Session["logged"] = "On";
if(Session["logged"].ToString().Equals("On");
{
    hits = 1;
    //add the data to database

}
从这里我迷路了。 如果可以避免使用数据库而使用.xml文件,那么活动会话是否仍然适用于该文件? 最后,我需要关心饼干吗

我知道Google analytics提供免费服务,但我不想使用它们。我还需要学会自己开发这些东西

谢谢

如果可以使用.xml文件来避免数据库,那么活动会话是否仍适用于该文件?最后,我需要关心饼干吗

使用会话变量跟踪是否计算了“命中次数”。您真正想要跟踪的是访问,而不是“点击”或“页面加载”

在IIS中,会话在客户端访问期间持续。这里有一些陷阱。如果客户端不支持cookies,则每个页面加载都将成为不同的会话。您可以使用IP和UserAgent的组合来检测何时发生这种情况,但这意味着您需要将其存储在数据库中,并在运行代码计算“命中率”时以某种方式对其进行检查


除非您希望能够匹配客户端会话,以查看访问者是新访问者还是以前某个时间访问过您的站点,否则您实际上不需要使用cookie来实现这一点。当我建立这个系统时,我选择在客户端上存储一个唯一的“cookieid”,这样我就能够检测到重复访问的用户。

谢谢您提供的信息。我现在就试试。不是真的担心同一个用户一次又一次的出现。就像youtube。您可以反复查看以添加视图。现在开始研究用户代理和IP地址。谢谢