ASP.NET Core Konfiguration des Sitzungsanbieters
Zu konfigurieren NCache ASP.NET Core Sitzungsanbieter, führen Sie die folgenden Schritte aus.
Voraussetzungen:
- Installieren Sie die folgenden NuGet-Pakete basierend auf Ihrer Anwendung in Ihrer Anwendung NCache Version:
- Unternehmen: AspNetCore.Session.NCache.
- Professional: AspNetCore.Session.NCache.Fachmann
- Open Source: AspNetCore.Session.NCache.Open Source
- Um die Erweiterung zu nutzen, schließen Sie die folgenden Namespaces in Ihre Anwendung ein Startup.cs:
- Der Cache muss ausgeführt werden.
- Einzelheiten zur API finden Sie unter: SpeichernNCacheSession.
- Stellen Sie sicher, dass die hinzugefügten Daten serialisierbar.
- Um sicherzustellen, dass der Vorgang ausfallsicher ist, wird empfohlen, alle potenziellen Ausnahmen in Ihrer Anwendung zu behandeln, wie in erläutert Umgang mit Fehlern.
- Informationen zum Umgang mit unsichtbaren Ausnahmen finden Sie unter Problemlösung .
Schritt 1: Konfigurieren NCache Sitzungsverwaltungsdienst
Der Sitzungsverwaltungsdienst muss in initialisiert werden Startup.cs. Es gibt zwei Methoden, um Konfigurationen anzugeben:
- Durch Ihre Bewerbung in Startup.cs or
- Im JSON-Format in Appsettings.json
Note
Die Konfiguration muss immer den Cache-Namen enthalten.
Methode 1: Angeben von Konfigurationen in Startup.cs
Sitzungen können durch initialisiert werden AddNCacheSession
Erweiterungsmethode, die eine benötigt IOptions<NCacheSessionConfiguration>
Objekt als Konfiguration.
In Startup.cs Fügen Sie Ihrer Anwendung den folgenden Code hinzu ConfigureServices
Verfahren:
public void ConfigureServices(IServiceCollection services)
{
// Add framework services
services.AddMvc();
// Add services to the container with configured session
services.AddNCacheSession(configuration =>
{
configuration.CacheName = "demoCache";
configuration.EnableLogs = true;
configuration.SessionAppId = "demoApp";
configuration.SessionOptions.IdleTimeout = 5;
configuration.SessionOptions.CookieName = "AspNetCore.Session";
});
}
Methode 2: Angeben von Konfigurationen in Appsettings.json
Die Konfigurationen für die Dienste können auch im JSON-Format als Abschnitt in bereitgestellt werden Appsettings.json Ihrer ASP.NET-Anwendung:
{
"NCacheSettings": {
"SessionAppId": "demoApp",
"SessionOptions": {
"CookieName": "AspNetCore.Session",
"CookieDomain": null,
"CookiePath": "/",
"CookieHttpOnly": "True",
"IdleTimeout": "5",
"CookieSecure": "None",
"useJsonSerialization": true,
"WriteExceptionsToEventLog": true,
},
"CacheName": "demoCache",
"EnableLogs": "True",
"RequestTimeout": "90"
},
}
Note
Es wird nicht empfohlen, die zu verwenden WriteExceptionsToEventLog
Tag in a Produktion Umwelt.
NCache bietet die AddNCacheSession
-Methode zum Initialisieren von Konfigurationen aus externen Dateien, bevor die Sitzungsdienste zum Container hinzugefügt werden. Mit dieser Methode können Sie auf die Konfigurationen verweisen, indem Sie den Namen des Abschnitts angeben, der Konfigurationen im JSON-Format enthält Appsettings.json:
public void ConfigureServices(IServiceCollection services)
{
// Add framework services
services.AddMvc();
// Add services to the container
services.AddNCacheSession(Configuration.GetSection("NCacheSettings"));
}
Schritt 2: Middleware zur Anwendung hinzufügen
Sobald die Dienste initialisiert wurden, können Sie nun die HTTPS-Anforderungspipeline konfigurieren, indem Sie Middleware hinzufügen Configure
Methode. Das Folgende ist ein Auszug, der das Hinzufügen einer Middleware-Schicht durch die Verwendung von zeigt UseNCacheSession
Erweiterungsmethode in IApplicationBuilder
dem „Vermischten Geschmack“. Seine NCache Session-Middleware sollte immer vor der Schicht gestapelt werden, die die Sessions nutzt.
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
loggerFactory.AddConsole(Configuration.GetSection("Logging"));
loggerFactory.AddDebug();
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseBrowserLink();
}
else
{
app.UseExceptionHandler("/Home/Error");
}
app.UseStaticFiles();
app.UseNCacheSession(); // store NCache session data
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=myApp}/{action=Index}/{id?}");
});
}
Sie können jetzt fortfahren - NCache als zugrundeliegender Cache für Ihren ASP.NET Core Sitzungen.
Konfigurationseigenschaften
Die Konfigurationsoptionen von NCache werden nachfolgend erklärt:
Mitglied | Typ | Beschreibung | Standardwert |
---|---|---|---|
CacheName |
string (erforderlich) |
Gibt den Namen des Caches an, der für die Caching-Sitzung verwendet werden soll. Wenn kein Cache-Name angegeben wird, wird eine Konfigurationsausnahme ausgelöst. | - |
EmptySessionWhenLocked |
bool (optional) |
Gibt an, ob eine leere Sitzung zurückgegeben werden soll, wenn sie nach dem gesperrt wird sessionLockingRetry Anzahl wurde überschritten. |
false |
EnableSessionLocking |
bool (optional) |
Wenn dieses Flag gesetzt ist, NCache Die Sitzungsverwaltung sperrt ausschließlich das Element im Sitzungsspeicher, für das mehrere gleichzeitige Anforderungen gestellt werden. | false |
EnableLogs |
bool (optional) |
Wenn dieses Flag gesetzt ist, NCache protokolliert alle Fehlerinformationen. Die Protokolldateien werden in erstellt %NCHOME%\log-files\SessionState (Windows) oder /opt/ncache/log-files/SessionState (Linux). |
false |
EnableDetailLogs |
bool (optional) |
Wenn dieses Flag gesetzt ist, NCache protokolliert alle Debugging-Informationen. Die Protokolldateien werden in erstellt %NCHOME%\log-files\SessionState (Windows) oder /opt/ncache/log-files/SessionState (Linux). |
false |
ExceptionsEnabled |
bool (optional) |
Gibt an, ob Ausnahmen von der Cache-API an die Seitenausgabe weitergegeben werden. Das Setzen dieses Flags ist besonders während der Entwicklungsphase der Anwendung hilfreich, da Ausnahmen mehr Informationen über die spezifischen Fehlerursachen liefern. | false |
OperationRetry |
int (optional) |
Gibt an, wie oft der Server den Vorgang wiederholt, falls während der Ausführung eines Vorgangs eine Verbindung mit einem Server verloren geht. | 0 (Null) |
OperationRetryInterval |
int (optional) |
Gibt das Zeitintervall zwischen den einzelnen Wiederholungsversuchen an, falls die Verbindung zum Server unterbrochen wird. | 0 (Null) |
ReadOnlyFlag |
string (optional) |
Wenn angegeben in HttpContext.Items Vor der Sitzungs-Middleware wird eine schreibgeschützte Sitzung zurückgegeben, die nicht festgeschrieben wird. Diese Sitzung ist sperrfrei. |
NCache.AspNetCore.IsReadOnly |
RequestTimeout |
int (optional) |
Gibt das Zeitintervall in Sekunden an, nach dem eine Sitzung zwangsweise entsperrt wird, wenn sie in diesem Intervall nicht freigegeben wurde. | 120 |
SessionAppId |
string (optional) |
Gibt eine Kennung an, um sicherzustellen, dass die Sitzungs-ID eindeutig bleibt, falls mehrere Anwendungen dieselbe Sitzung verwenden. Die Anwendungs-ID sollte für eine Anwendung in einer Webfarm dieselbe sein. Wenn keine App-ID angegeben ist, wird nichts mit der Sitzungs-ID verkettet. | - |
SessionLockingRetry |
int (optional) |
If enableSessionLocking wahr ist und diese ganze Zahl nicht kleiner als 0 ist, NCache Der Sitzungsspeicheranbieter gibt danach eine leere Sitzung zurück sessionLockingRetry , der die Anzahl der Wiederholungsversuche angibt, um eine Sperre zu erhalten. |
-1 |
SessionOptions |
SessionOptions |
.NET Core-spezifische Klasse zum Konfigurieren von Sitzungen wie Cookie-Informationen. Siehe die API-Dokumentation für weitere Informationen an. | - |
WriteExceptionsToEventLog |
bool (optional) |
Wenn dieses Flag gesetzt ist, werden alle Ausnahmen von der Cache-API in Ereignisprotokolle geschrieben. | false |
usejsonserialization |
bool |
Dies ist ein boolesches Attribut. Wenn Sie die JSON-Serialisierung für Ihren ASP verwenden möchten.NET Core Sitzungsobjekte, legen Sie den Wert dieses Attributs fest als true . |
false |
Siehe auch
.NETZ: Alachisoft.NCache.Web.SessionState Namespace.