0

单击此处 Global.asax.cs

      namespace WebApplication7
     {
    public class Global : System.Web.HttpApplication
      {
    private static int countdays=0;

    protected void Application_Start(object sender, EventArgs e)
    {
        countdays = 0;
    }

    protected void Session_Start(object sender, EventArgs e)
    {
        countdays += 1;
    }

    protected void Application_BeginRequest(object sender, EventArgs e)
    {

    }

    protected void Application_AuthenticateRequest(object sender, EventArgs e)
    {

    }

    protected void Application_Error(object sender, EventArgs e)
    {

    }

    protected void Session_End(object sender, EventArgs e)
    {
        countdays -= 1;
    }

    protected void Application_End(object sender, EventArgs e)
    {

    }
    public static int CountNo { get { return countdays; } }
  }
}

全球.apsx

  <body>
  <form id="fromHitCounter" method="post" runat="server">
  Total number of days since the Web server started:
 <asp:label id="lblCount" runat="server"></asp:label><br />
 </form>
 </body>

全局.aspx.cs

      private void Page_Load(object sender, System.EventArgs e)

        {

      int Countdays = HitCounters.Global.Countdays;//Hit counter does not exist  


      lblCount.Text = Countdays.ToString();

        }

如何使用 global.asax 文件计算 asp.net 中的天数计数器,在 Global.aspx.cs iam 中获取错误命中计数器在当前上下文中不存在

4

1 回答 1

2

我不会问为什么,我可能不会喜欢你给我的理由。但是,您没有在这里计算天数。您正在计算会话开始。

你真正想做的是这样的:

public class Global : System.Web.HttpApplication
{

    private static DateTime started;
    private static int days;

    protected void Application_Start(object sender, EventArgs e)
    {
        started = DateTime.UtcNow;
        days = 0;
    }

    protected void Session_Start(object sender, EventArgs e)
    {
        TimeSpan ts = DateTime.UtcNow - started;
        days = (int)ts.TotalDays;
    }

    ...

  }
}

但是,这是假设会话事件触发并且您还忽略了应用程序可以并且确实被卸载的事实,您的应用程序可能甚至一天都不会保持加载状态。

您的链接指向计算网站访问次数,这与计算天数或获取网络服务器运行的时间不同。这也是一个非常糟糕的尝试,因为它没有考虑来自同一用户的重复访问等,并且在应用程序域卸载之间并不是真正持久的。

于 2013-02-20T13:01:47.483 回答