您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> .NET >> 数学荒岛历险记第一部 Globalasax 记数

数学荒岛历险记第一部 Globalasax 记数

来源:网络整理     时间:2016/8/14 16:36:34     关键词:数学荒岛历险记第一部

关于网友提出的“数学荒岛历险记第一部 Globalasax 记数”问题疑问,本网通过在网上对“数学荒岛历险记第一部 Globalasax 记数”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题:数学荒岛历险记第一部 Globalasax 记数
描述:

Global.asax 记数为什么不准确!
比如我连续访问啦7次页面 显示有7人访问本站
可是在线人数不准确啊
代码是:
<%@ Application Language="C#" %>

    void Application_Start(object sender, EventArgs e) 
    {
        // 在应用程序启动时运行的代码
        Application["online"] = 0;
        Application["allCount"] = 0;
        
    }
    
    void Application_End(object sender, EventArgs e) 
    {
        //  在应用程序关闭时运行的代码
    }
        
    void Application_Error(object sender, EventArgs e) 
    { 
        // 在出现未处理的错误时运行的代码
      //  Order.table.Clear();
    }
    void Session_Start(object sender, EventArgs e) 
    {
        // 在新会话启动时运行的代码
        Application.Lock();
        Application["online"] = int.Parse(Application["online"].ToString()) + 1;
        Application["allCount"] = int.Parse(Application["allCount"].ToString()) + 1;
        Application.UnLock();
    }
    void Session_End(object sender, EventArgs e) 
    {
        // 在会话结束时运行的代码。 
        // 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为
        // InProc 时,才会引发 Session_End 事件。如果会话模式设置为 StateServer 
        // 或 SQLServer,则不会引发该事件。
        Application.Lock();
        Application["online"] =int.Parse(Application["online"].ToString()) - 1;
        Application.UnLock();
        Order.table.Clear();
        BBSmanger asp = new BBSmanger();
        int result = asp.setLeave(Session["bbsUser"].ToString());
    }
       


解决方案1:

学习

解决方案2:

lock的时间极其的短,非常的短,

解决方案3:

QUOTE:当然会不准确,2人同时登陆时就会出现不准确
-------------------------
?!同时登陆不准确?!你的意思是说被lock了,其中有一个不能写导致不准确?!

解决方案4:

当然会不准确,2人同时登陆时就会出现不准确

解决方案5:

在web.config里,你设置了mode=inproc了吗?

		
解决方案6:

写错了。
应是
Application["online"]==null?Application["online"]=1:Application["online"]=Int32.Parse(Application["online"].ToString())+1

解决方案7:

Application["online"]   =   int.Parse(Application["online"].ToString())   +   1; 
改为:
session["online"]==null?Session["online"]=1:Session["online"]=Int32.Parse(Session["online"].ToString())+1

解决方案8:


    void Session_Start(object sender, EventArgs e) 
    {
        // Code that runs when a new session is started
        Application.Lock();   
        Application["Count"] = (int)Application["Count"] + 1;
        Application.UnLock();
    }


以上介绍了“数学荒岛历险记第一部 Globalasax 记数”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/3278856.html

数学荒岛历险记第一部相关图片

数学荒岛历险记第一部相关文章