Frage

Wie kann ich anhalten ein anwenderspezifische Daten für eine ASP.Net-Anwendung.

Ich habe versucht, Session Variable. - nicht gut, wenn der Arbeitsprozess rezykliert

Ich brauche etwas, das weltweit von jeder Klasse meiner Anwendung zugegriffen werden kann.

Rat sehr willkommen.

Ich habe versucht, asp.net Sitzung Staat Server zu verwenden, aber ich habe einige DLLs abstürzt, weil sie unserialisierbar sind.

Gibt es eine andere Art und Weise eine persistente Variable für die Anwendung zu haben?

War es hilfreich?

Lösung

ASP.NET-Sitzungszustand kann so konfiguriert werden, um eine Datenbank zu bestehen.

Hier ist eine Anleitung, wie man das einzurichten.

Andere Tipps

Speichern von Daten in einer Datenbank (zB SQL Server).

Sie sollten Session verwenden. Sie können, wie dies in einer Klasse Sitzungsstatus global zugreifen ...

HttpContext.Current.Session

Sitzungen, die von dem Arbeitsprozess Recycling zu verlieren, verwenden Sie State -Modus.

Sie können die Session State Server ändern nicht in Prozess zu sein, der es weitaus stabiler machen und es auch aus dem Arbeitsprozess trennen (Sie müssen in der Lage sein, den Asp.NET State Service auf dem Server zu starten, wenn es ist nicht bereits ausgeführt wird)

<sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes" cookieless="false" timeout="20"/>

Auch wenn Sie es über Anwendungen in der gleichen Domäne teilen müssen, sollten Sie in der Lage sein, ihnen die gleichen Computerschlüssel

Es gibt nichts Sie über den Prozess Recycling wirklich tun können. Wenn Sie den Cache verwenden intelligent Informationen in einem globalen Sinn zu behalten, aber sie immer noch den gleichen Arbeitsprozess Einschränkung.

Ich versuche, entwerfen sie meine App in einem n-Tier-Setup mit Geschäfts Entitätsobjekten. Die Factory-Methoden für meine Objekte verwenden, um die Cache-Art wie ein faules instantation Muster. Wenn es in der cahce, ziehen Sie es. Wenn nicht, setzen Sie es in den Cache für die nächste Zeit.

das heißt

MyAppsNameSpace.MyBusinessLayerNameSpace.MyObject.GetObject(objectID)

jetzt, wenn dies mein Objekt zurückgibt, ist es aus dem Cache sein kann oder nicht, wenn das Objekt unter hohen Auslastung ist, dann wird es wahrscheinlich im Cache gespeichert werden werden.

Dies kann während Ihrer gesamten App verwendet werden, und da der Cache-Mechanismus zentral gepflegt wird nicht haben Sie wirklich darum kümmern.

Sie könnten das Profil Provider mit einer SQL-Datenbank als Sicherungsspeicher verwendet werden.

Sehen Sie diese MSDN Artikel

Wenn Sie Daten verlieren, wenn der Arbeitsprozess rezykliert dann sollten Sie den InProc persistance-Modus für die Session nicht mehr verwenden. Verwenden Sie State oder SQL Server. Letztlich könnten Sie Ihre eigene Sitzung persistance Modul, wenn weder erfüllen Sie bauen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top