ASP.NET Core セッションプロバイダーの構成
設定するには NCache ASP.NET Core セッションプロバイダー、以下の手順に従ってください。
前提条件
- に基づいて、アプリケーションに次の NuGet パッケージをインストールします。 NCache バージョン:
- エンタープライズ: AspNetCore.Session。NCache.
- プロフェッショナル: AspNetCore.Session。NCache。プロ
- オープンソース: AspNetCore.Session。NCache。オープンソース
- 拡張機能を利用するには、次の名前空間をアプリケーションに含めます。 スタートアップ.cs:
- キャッシュが実行されている必要があります。
- APIの詳細については、以下を参照してください。 AddNCacheセッションを開く.
- 追加するデータが シリアライズ可能.
- 操作がフェイルセーフであることを保証するために、で説明されているように、アプリケーション内の潜在的な例外を処理することをお勧めします。 失敗の処理.
- 目に見えない例外を処理するには、を参照してください。 トラブルシューティング のセクションから無料でダウンロードできます。
手順1:構成 NCache セッション管理サービス
セッション管理サービスは、で初期化する必要があります スタートアップ.cs。 構成を指定するには、次のXNUMXつの方法があります。
- でのアプリケーションを通じて スタートアップ.cs or
- JSON形式で アプリ設定.json
Note
設定には常にキャッシュ名が含まれている必要があります。
方法1:Startup.csで構成を指定する
セッションは次の方法で初期化できます。 AddNCacheSession
を受け取る拡張メソッド IOptions<NCacheSessionConfiguration>
構成としてのオブジェクト。
In スタートアップ.cs アプリケーションの ConfigureServices
方法:
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";
});
}
方法2:Appsettings.jsonで構成を指定する
サービスの構成は、次のセクションとして JSON 形式で提供することもできます。 アプリ設定.json 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"
},
}
Note
使用することは推奨されません WriteExceptionsToEventLog
のタグ 生産 環境。
NCache 提供する AddNCacheSession
セッションサービスをコンテナに追加する前に、外部ファイルから構成を初期化するメソッド。 この方法を使用すると、JSON形式の構成を含むセクションの名前を指定して構成を参照できます。 アプリ設定.json:
public void ConfigureServices(IServiceCollection services)
{
// Add framework services
services.AddMvc();
// Add services to the container
services.AddNCacheSession(Configuration.GetSection("NCacheSettings"));
}
ステップ2:アプリケーションにミドルウェアを追加する
サービスが初期化されたら、ミドルウェアを追加して HTTPS リクエスト パイプラインを構成できるようになります。 Configure
方法。 以下は、 UseNCacheSession
の拡張メソッド IApplicationBuilder
を選択します。 NCache セッションミドルウェアは、常にセッションを利用するレイヤーの前にスタックする必要があります。
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?}");
});
}
これで、に進むことができます つかいます NCache 基盤となるキャッシュとして あなたのASPのために.NET Core セッション。
構成プロパティ
によって提供される構成オプション NCache 以下に説明します。
メンバー | タイプ | 説明 | デフォルト値 |
---|---|---|---|
CacheName |
string (必須) |
キャッシュ セッションに使用するキャッシュの名前を指定します。 キャッシュ名が指定されていない場合、構成例外がスローされます。 | - |
EmptySessionWhenLocked |
bool (オプション) |
セッション後にロックされた場合に空のセッションを返すかどうかを指定します。 sessionLockingRetry カウントを超えました。 |
false |
EnableSessionLocking |
bool (オプション) |
このフラグが設定されている場合、 NCache セッション管理は、複数の同時リクエストが行われるセッションストアアイテムを排他的にロックします。 | false |
EnableLogs |
bool (オプション) |
このフラグが設定されている場合、 NCache すべてのエラー情報をログに記録します。 ログファイルはで作成されます %NCHOME%\log-files\SessionState (Windows)または /opt/ncache/log-files/SessionState (Linux)。 |
false |
EnableDetailLogs |
bool (オプション) |
このフラグが設定されている場合、 NCache すべてのデバッグ情報をログに記録します。 ログファイルはで作成されます %NCHOME%\log-files\SessionState (Windows)または /opt/ncache/log-files/SessionState (Linux)。 |
false |
ExceptionsEnabled |
bool (オプション) |
キャッシュ API からの例外をページ出力に伝播するかどうかを指定します。 このフラグの設定は、例外によって失敗の特定の原因に関する詳細情報が得られるため、アプリケーションの開発段階で特に役立ちます。 | false |
OperationRetry |
int (オプション) |
操作の実行中にサーバーとの接続が失われた場合に、サーバーが操作を再試行する回数を指定します。 | 0(ゼロ) |
OperationRetryInterval |
int (オプション) |
サーバーとの接続が失われた場合に備えて、各操作の再試行の時間間隔を指定します。 | 0(ゼロ) |
ReadOnlyFlag |
string (オプション) |
で指定されている場合 HttpContext.Items セッションミドルウェアの前では、コミットされない読み取り専用セッションが返されます。 このセッションはロックフリーです。 |
NCache.AspNetCore.IsReadOnly |
RequestTimeout |
int (オプション) |
セッションがこの間隔中に解放されなかった場合にセッションが強制的にロック解除されるまでの時間間隔を秒単位で指定します。 | 120 |
SessionAppId |
string (オプション) |
複数のアプリケーションが同じセッションを使用している場合にセッション ID が一意であることを確認するための識別子を指定します。 アプリケーション ID は、Web ファーム内のアプリケーションで同じである必要があります。 アプリ ID が指定されていない場合、セッション ID には何も連結されません。 | - |
SessionLockingRetry |
int (オプション) |
If enableSessionLocking は真であり、この整数は0以上です。 NCache セッションストアプロバイダーは、後に空のセッションを返します sessionLockingRetry 、ロックを取得するための再試行回数を指定します。 |
-1 |
SessionOptions |
SessionOptions |
.NET Coreクッキー情報などのセッションを設定するための - 固有のクラス。 を参照してください。 APIドキュメント のガイドをご参照ください。 | - |
WriteExceptionsToEventLog |
bool (オプション) |
このフラグが設定されている場合、キャッシュAPIからのすべての例外がイベントログに書き込まれます。 | false |
usejsonserialization |
bool |
これはブール属性です。 ASPにJSONシリアル化を使用する場合.NET Core セッション オブジェクトの場合、この属性の値を次のように設定します。 true . |
false |
も参照してください
。ネット: Alachisoft.NCache.Web.SessionState 名前空間