PDA

View Full Version : Application_OnEndRequest کجاست؟!



Developer Programmer
یک شنبه 23 خرداد 1389, 20:27 عصر
واسه یادگیری ASP.NET دارم Ebook میخونم و به چند تا مشکل برخوردم.

میخوام کلاسها رو در ASP امتحان کنم واسه اینکار تصمیم گرفتم تعداد بازدیدها و کاربران سایت رو از طریق کلاس بفهمم نه از طریق Application

واسه اینکار من یه کلاس خیلی ساده تعریف کردم:

public class Class1
{

// "Fields"
private static int TotalUser;
private static int TotalVisit;

//properties
public int users
{
get { return GetUser (); }

set { SetUser (value); }
}

public int visits
{
get { return GetVisit (); }
set { SetVisit (value); }
}

public Class1 ()
{
TotalUser = 0;
TotalVisit = 0;
}

public static int GetVisit () { return TotalVisit; }
public static void SetVisit (int value) { TotalVisit = value; }

public static int GetUser () { return TotalUser; }
public static void SetUser (int value) { TotalUser = value; }
}


بعد میام و از طریق فایل Global.asax مقادیر رو اینطوری مقداردهی میکنم


public class Global : System.Web.HttpApplication
{
Class1 cs = new Class1 ();

protected void Session_Start (object sender, EventArgs e)
{
Application.Lock();
cs.users = cs.users+1;
Application.UnLock ();
}

protected void Application_BeginRequest (object sender, EventArgs e)
{
Application.Lock ();
cs.visits = cs.visits + 1;
Application.UnLock ();
}

protected void Application_EndRequest (object sender, EventArgs e)
{
Response.Write ("<br /> End of Request <br />");
Response.Write("Total Session:" + cs.users.ToString() + "<br />");
Response.Write ("Total page visits:" + cs.visits.ToString());
}

مشکلی که پیش میاد اینه که Visitors اولین بار یک / دومین بار 4 / سومین بار 7 میشه... مشکل کار از کجاست؟