2014-10-04 10 views
6

Asp.net C# web sitesi için ziyaretçi sayısını nasıl sayabilirim? .aspx sayfasıasp.net web sitesi için ziyaretçi sayısını saymak C#

<asp:Label runat="server" ID="lbluser" /> 
içinde

global.asax sayfa

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

void Application_Start(object sender, EventArgs e) 
{ 
    // Code that runs on application startup 
    Application["NoOfVisitors"] = 0; 
} 





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

yılında: Ben aşağıdaki kodu kullanıyorum

Ben kullanıcı sayısını sayma içinde hatalı sahip .aspx.cs

protected void Page_Load(object sender, EventArgs e) 
{ 
    lbluser.Text = Application["NoOfVisitors"].ToString(); 
} 

uygulama sayaç 0'a her bir saat sıfırlıyor ... yılında

? ... teşekkürler ...

cevap

1

Uygulamanız IIS'de barındırılıyorsa ve bir uygulama havuzu varsa, Uygulama Havuzu Geri Dönüşüm Ayarları'nı denetleyebilirsiniz. Sürümünüze bağlı olarak, varsayılan 1740 veya 29 saattir. Belki de uygulamanızın havuzu 60 ya da bu değerin etrafında yapılandırılmış mı? Kontrol edilecek bir sonraki ayar Boşta Kalma Süresidir. Yeni bir sunucuda varsayılan değerinin 20 olduğuna inanıyorum. Bunu 0 olarak ayarlayabilirsiniz. Bu ayarları değiştirmeden önce okumanızı tavsiye ederim.

+0

Web sitesi bigrocks'ta barındırdım .... bu bilgileri onlara göndereceğim .... –

+0

böylece uygulama havuzu belirli bir süre sonra yeniden başlayacak mı? –

1

Bunun tek olası nedeni, başvurunuzu üçüncü taraf bir sunucuda barındırdınız mı? eğer evet ise, sağlayıcı başvurunuzu öldürüyor olabilir. Bu sağlayıcıların, bellek yönetim şemalarına bağlı olarak uygulamanızı öldürdüğü sayısız vakam var.

3

Uygulama Durum dalgalıdır. Kontrol this MSDN articule:

uygulama durumu kullanırken, aşağıdaki önemli hususlar farkında olmalıdır: ...

  • Volatilite uygulama durumu saklandığı için Sunucu belleği, uygulama durdurulduğunda veya yeniden başlatıldığında kaybolur. Örneğin, Web.config dosyası değiştirilirse , uygulama yeniden başlatılır ve uygulama durumu değerleri, veritabanı gibi geçici olmayan bir depolama ortamına yazılmadıkça, tüm uygulama durumu kaybolur ve .

Yani zaman içinde sürekliliğini istediğiniz veri bu tür kaydetmek için bu kullanmamalısınız. Çünkü uygulama havuzları zaman zaman yeniden satılmaktadır. Ve bu olduğunda ziyaretçi sayınızı sıfırlamak istemediğinizi sanıyorum.

Uygulama çalışmıyorken verilerinizi devam ettirebilecek bir çeşit veri deposuna ihtiyacınız olacak.

0

Değeri, veritabanına ve değerine değiştirdikten sonra ziyaretçi sayısını basit bir şekilde saklayın.

-1

Uygulama Havuzu Yeniden Başlatma periyodik olarak varsayılan ayarlar 60 dakikadır. Uygulama havuzu, yeniden başlatmayı da yeniden başlattığında . global.axas ise

+0

SO'ya hoş geldiniz. Cevabın, Soru ile ilgisi yok. OP bilmek istiyor, * nasıl sayılır * – lokusking

1

ardından sayfa yükte sonra sitenizde ziyaretçi sayısını alabilirsiniz

lblCount.Text = Application["NoOfVisitors"].ToString(); 

ekleyin Bu yöntemle

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

altında dosya.