关于一个访问统计计数器的问题

sw227538398 2009-12-16 09:20:48
我在Global.asax文件里面写了如下代码,第一次运行加了3,关掉浏览器后再开却不加了,这是为什么呢???哪里出错了?

<%@ Application Language="C#" %>

<script runat="server">

void Application_Start(object sender, EventArgs e)
{
//在应用程序启动时运行的代码
Application["count"] = 0;
}

void Application_End(object sender, EventArgs e)
{
//在应用程序关闭时运行的代码

}

void Application_Error(object sender, EventArgs e)
{
//在出现未处理的错误时运行的代码

}

void Session_Start(object sender, EventArgs e)
{
//在新会话启动时运行的代码
Application.Lock();
Application["count"] = (int)Application["count"] + 3;
Application.UnLock();

}

void Session_End(object sender, EventArgs e)
{
//在会话结束时运行的代码。
// 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为
// InProc 时,才会引发 Session_End 事件。如果会话模式
//设置为 StateServer 或 SQLServer,则不会引发该事件。
Application.Lock();
Application["count"] = (int)Application["count"] - 1;
Application.UnLock();
}

</script>
...全文
59 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
tianmao111 2009-12-16
  • 打赏
  • 举报
回复
很简单,你session存在哪了?失效时间是多少?看看我的吧
Session.Timeout=30;

Application.Lock();

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

//访问总人数+1

Application.UnLock();
wuyq11 2009-12-16
  • 打赏
  • 举报
回复
使用xml或txt保存数据
重启,为0
pm_230387 2009-12-16
  • 打赏
  • 举报
回复
抱歉,上面也不能实现。

若是想让用户每登录一次就加一次要先注消会话。
不然有一段缓存时间。
pm_230387 2009-12-16
  • 打赏
  • 举报
回复
public override void Init()
{
//Code
base.Init();
}
pm_230387 2009-12-16
  • 打赏
  • 举报
回复
在Init中就可以了
sw227538398 2009-12-16
  • 打赏
  • 举报
回复
我现在能加了。。。每次运行加3。。可是Session_End方法却没用。。。我也加了sessionState了

<system.web>
<sessionState
mode="InProc"
stateConnectionString="tcpip=127.0.0.1:42424"
sqlConnectionString="data source=127.0.0.1;user id=sa;password="
cookieless="false"
timeout="20"
/>

<!--
设置 compilation debug="true" 可将调试符号
插入已编译的页面中。
但由于这会影响性能,因此只在开发过程中将此值
设置为 true。
-->
qq18527575 2009-12-16
  • 打赏
  • 举报
回复
调试一下,关闭所有浏览器的时候是否经过Session_End方法

62,254

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧