2016-07-23 7 views
1

Ich möchte meine asp.net-Website besucht Anzahl ohne Verwendung der Datenbank anzeigen. Die erste Idee verwendet etwas wie Application["VisitedUsersCount"] und erhöht es bei Session_Start Ereignis der Anwendung. Aber der Umfang dieser Variable ist Application und wenn ich meine Site aus Visual Studio veröffentliche, wird diese Variable wieder Null.Besuchte Benutzer zählen in ASP.NET ohne Datenbank

Die zweite ist, eine Datei zu verwenden, um diese Variable zu speichern, und jedes Mal, wenn Session_Start gefeuert wurde, öffne ich diese Datei und erhöhe ihren Wert. Aber das Problem hier ist Parallelitätsproblem, wenn zwei Benutzer gleichzeitig auf diese Datei zugreifen möchten. Also meine Fragen sind:

  1. Gibt es eine Parallelität Problem diese Variable in der Datei zu speichern und den Zugriff auf sie jedes Mal Session_Start Feuer?
  2. Funktioniert es, wenn ich diese Datei nur auf Application_Start lade und sie unter Application_End speichere? Wenn ich es aus dem Visual Studio veröffentliche, wird die Application_End ausgelöst?
+1

Sie können zuerst gehen und das Dateikonzept damit integrieren, dh Wenn Sie Application_Start ausführen, erhalten Sie die gelesene Datei und dann Application ["VisitedUsersCount"] auf diesen Wert und in Application_End den aktuellen Wert von Anwendung ["VisitedUsersCount"] zurück zur Datei. – Manish

Antwort

0

Ich versuchte die zweite. Daher auf Application_Start Ereignis Ich lese diese Datei und Einstellung Application ["VisitedUsersCount"] Variable. Dann auf Application_End schreibe ich es wieder. Der entscheidende Punkt ist, dass die aktuelle Datei "Build Action" im Fenster "Properties" auf "None" gesetzt wird, um zu verhindern, dass die aktuelle Datei auf dem Server für jede Veröffentlichung geändert wird.

Verwandte Themen