2009-04-20 6 views

Antwort

1

Wenn Sie die Sitzung auf einem Datenbankserver oder einem Statusserver speichern, wird das Ereignis Session_End nicht ausgelöst. Sonst denke ich, dass es keine Probleme geben sollte.

Auch während Inkrementieren/Dekrementieren eines Zählers, erhalten Sie eine Sperre für ein Objekt wie diese erhalten müssen -

lock(<some shared object>) 
{ 
    counter++; 
} 

Sie auch einen Blick auf, this versuchen.

+1

Sperren des Anwendungsobjekts 'global.asax'? Es ist ein absolutes No-No in einer ASP.NET App! –

2

Am allerwenigsten hat diese Lösung ein Threading-Problem (neben anderen Problemen, die Sie beeinflussen könnten, wie Sie bereits erwähnt, und ich werde nicht abdecken):

Die Zunahme und Abnahme Aufgabe in einer atomaren Weise getan werden soll, unter Verwendung von Interlocked.Increment und Interlocked.Decrement Methoden statt ++ oder --.

+0

Das Code-Snippet wurde jetzt geändert. – Kirtan