Veldig enkel teller i ASP.NET uten database
3/5/2008 1:30:00 PM
Dette er et eksempel på hvordan du kan lage en veldig enkel teller med ASP.NET (C#) uten å bruke database. Legge inn følgende kode i global.asax og sørg for at ASPNET har skrivetilgang til mappen "/App_Data" (det er standard at ASPNET har det)
admin
protected void Application_BeginRequest(object sender, EventArgs e)
{
string[] scriptName = Request.RawUrl.Split('?');
// Sjekker at vi ikke logger annet enn filer som slutter med ".aspx"
if (scriptName[0].ToString().ToLower().EndsWith(".aspx"))
{
// Leser av counter-verdien fra application-variabel
int currentCount = Convert.ToInt32(Application["counter"]);
// Hvis den er 3 så lagrer vi verdien i tekstfilen
// Grunnen til at dette bør gjøres er for at man ikke skal skrive
// til filen for ofte (ytelse)
if (currentCount == 3)
{
// Skriver til fil og setter ny verdi til 0 (restart)
IncreaseCounterFile(3);
currentCount = 0;
}
else
{
// øker telleren med 1
currentCount++;
}
// Setter verdien i application-variabelen
Application.Lock();
Application["counter"] = currentCount.ToString();
Application.UnLock();
}
}
// Metode som øker tallet i "telle-filen" med x
private void IncreaseCounterFile(int num)
{
string counterFile = Server.MapPath("/") + "App_Data/counter.txt";
System.IO.File.WriteAllText(counterFile, (CurrentCount() + num).ToString());
}
// Funksjon som leser av verdien i "telle-filen"
private int CurrentCount()
{
string counterFile = Server.MapPath("/") + "App_Data/counter.txt";
return Convert.ToInt32(System.IO.File.ReadAllText(counterFile));
}