1

ServiceStackのセッション機能(メモリキャッシュを使用)を使用しており、セッションオブジェクトのキーにアクセスして変更し、セッションを保存しようとしています。

var filesList = Session.Get<List<string>>("NewRequestUploadedFiles");
filesList.Add(fileName);
Session["NewRequestUploadedFiles"] = filesList;

このコードは、クライアントからの複数の同時リクエストを介して並列に呼び出すことができるため、このキーをロックする必要があります。ISessionのロックを実現するための組み込みの方法はありますか?

今のところメモリキャッシングを使用していますが、将来的にはキャッシングプロバイダーをRedisに変更したいので、一般的な方法がある場合はそれをお勧めします。

前もって感謝します。

4

1 に答える 1

1

書き込みはアトミックであるため、ServiceStackの型付きセッションの使用を検討する必要があります。

それ以外の場合は、必要に応じて、 Redisを使用して分散ロックを維持できます。メモリ内のホストが1つしかない場合は、C#標準のロックセマンティクスを使用できます。

于 2013-03-25T16:19:01.717 に答える