ASP.NET Core Configuration du fournisseur de sessions
Configurer NCache ASP.NET Core Session Provider for Session Management Service by modifying the Appsettings.json and then adding middleware to the application as necessary.
Pré-requis
- Install the following NuGet packages in your application To configure ASP.NET Core session provider, based on your NCache Version:
- Enterprise: AspNetCore.Session.NCache.
- Professionnel: AspNetCore.Session.NCache.Professionnel
- Open source: AspNetCore.Session.NCache.Open source
- Pour utiliser l'extension, incluez les espaces de noms suivants dans votre application dans Démarrage.cs:
- Le cache doit être en cours d'exécution.
- Pour plus de détails sur l'API, reportez-vous à : AjouterNCacheSession.
- Assurez-vous que les données ajoutées sont sérialisable.
- Pour garantir la sécurité de l'opération, il est recommandé de gérer toutes les exceptions potentielles au sein de votre application, comme expliqué dans Gestion des échecs.
- Pour gérer les exceptions invisibles, reportez-vous au Dépannage .
Étape 1: Configurer NCache Service de gestion des sessions
Le service de gestion de session doit être initialisé dans Démarrage.cs. Il existe deux méthodes pour spécifier des configurations :
- Grâce à votre candidature en Démarrage.cs or
- Au format JSON dans Appsettings.json
Notes
La configuration doit toujours contenir le nom du cache.
Méthode 1 : spécification des configurations dans Startup.cs
Les sessions peuvent être initialisées par le AddNCacheSession
méthode d'extension qui prend un IOptions<NCacheSessionConfiguration>
objet comme configuration.
In Démarrage.cs de votre application, ajoutez le code suivant dans le ConfigureServices
méthode:
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";
});
}
Méthode 2 : Spécification des configurations dans Appsettings.json
Les configurations des services peuvent également être fournies au format JSON sous forme de section dans Appsettings.json de votre application ASP.NET :
{
"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"
},
}
Notes
Il n'est pas recommandé d'utiliser le WriteExceptionsToEventLog
balise dans un Vidéo environnement.
NCache Fournit le AddNCacheSession
pour initialiser les configurations à partir de fichiers externes avant d'ajouter les services de session au conteneur. Grâce à cette méthode, vous pouvez faire référence aux configurations en fournissant le nom de la section contenant les configurations au format JSON dans Appsettings.json:
public void ConfigureServices(IServiceCollection services)
{
// Add framework services
services.AddMvc();
// Add services to the container
services.AddNCacheSession(Configuration.GetSection("NCacheSettings"));
}
Étape 2 : Ajouter un middleware à l'application
Une fois les services initialisés, vous pouvez désormais configurer le pipeline de requêtes HTTPS en ajoutant un middleware dans le Configure
méthode. Ce qui suit est un extrait montrant l'ajout d'une couche middleware grâce à l'utilisation du UseNCacheSession
méthode d'extension dans IApplicationBuilder
L’ NCache le middleware de session doit toujours être empilé avant la couche qui utilise les sessions.
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?}");
});
}
Vous pouvez maintenant passer à utilisé NCache comme cache sous-jacent pour votre ASP.NET Core Séances.
Propriétés de configuration
Les options de configuration fournies par NCache sont expliqués ci-dessous :
Membre | Type | Description | Valeur par défaut |
---|---|---|---|
CacheName |
string (Obligatoire) |
Spécifie le nom du cache à utiliser pour la session de mise en cache. Si aucun nom de cache n'est spécifié, une exception de configuration sera levée. | - |
EmptySessionWhenLocked |
bool (Optionnel) |
Spécifie si une session vide doit être renvoyée si elle est verrouillée après la sessionLockingRetry Le nombre a été dépassé. |
false |
EnableSessionLocking |
bool (Optionnel) |
Si ce drapeau est activé, NCache La gestion de session verrouille exclusivement l'élément de magasin de session pour lequel plusieurs demandes simultanées sont effectuées. | false |
EnableLogs |
bool (Optionnel) |
Si ce drapeau est activé, NCache enregistre toutes les informations d'erreur. Les fichiers journaux sont créés dans %NCHOME%\log-files\SessionState (Windows) ou /opt/ncache/log-files/SessionState (Linux). |
false |
EnableDetailLogs |
bool (Optionnel) |
Lorsque ce drapeau est activé, NCache enregistre toutes les informations de débogage. Les fichiers journaux sont créés dans %NCHOME%\log-files\SessionState (Windows) ou /opt/ncache/log-files/SessionState (Linux). |
false |
ExceptionsEnabled |
bool (Optionnel) |
Spécifie si les exceptions de l'API de cache sont propagées à la sortie de la page. La définition de cet indicateur est particulièrement utile pendant la phase de développement de l'application, car les exceptions fournissent plus d'informations sur les causes spécifiques de l'échec. | false |
OperationRetry |
int (Optionnel) |
Spécifie le nombre de fois que le serveur réessayera l'opération, en cas de perte de connexion avec un serveur pendant l'exécution d'une opération. | 0 (zéro) |
OperationRetryInterval |
int (Optionnel) |
Spécifie l'intervalle de temps entre chaque nouvelle tentative d'opération, en cas de perte de connexion avec le serveur. | 0 (zéro) |
ReadOnlyFlag |
string (Optionnel) |
Si spécifié dans HttpContext.Items avant le middleware de session, il renverra une session en lecture seule qui ne sera pas validée. Cette session est sans verrouillage. |
NCache.AspNetCore.IsReadOnly |
RequestTimeout |
int (Optionnel) |
Spécifie l'intervalle de temps en secondes après lequel une session sera déverrouillée de force si elle n'a pas été libérée pendant cet intervalle. | 120 |
SessionAppId |
string (Optionnel) |
Spécifie un identifiant pour garantir que l'ID de session reste unique au cas où plusieurs applications utiliseraient la même session. L’ID d’application doit être le même pour une application dans une batterie de serveurs Web. Si aucun ID d'application n'est spécifié, rien ne sera concaténé à l'ID de session. | - |
SessionLockingRetry |
int (Optionnel) |
If enableSessionLocking est vrai et cet entier n'est pas inférieur à 0, NCache Le fournisseur de magasin de sessions renverra une session vide après sessionLockingRetry , qui spécifie le nombre de tentatives d'acquisition d'un verrou. |
-1 |
SessionOptions |
SessionOptions |
.NET Core-classe spécifique pour configurer les sessions comme les informations sur les cookies. Se référer au Documentation de l'API pour plus de détails. | - |
WriteExceptionsToEventLog |
bool (Optionnel) |
Si cet indicateur est défini, toutes les exceptions de l'API de cache sont écrites dans les journaux d'événements. | false |
usejsonserialization |
bool |
Il s'agit d'un attribut booléen. Si vous souhaitez utiliser la sérialisation JSON pour votre ASP.NET Core Objets de session, définissez la valeur de cet attribut comme true . |
false |
Voir aussi
.RAPPORTER: Alachisoft.NCache.Web.SessionState espace de noms.