サンドボックスソリューションのオブジェクトキャッシュ
-
22-10-2019 - |
質問
複数のWebパーツで構成されるSharePoint Sandboxソリューションを構築しています。 Pocoオブジェクト(プレーン古いCLRオブジェクト)を何らかの形でキャッシュすることができるようにしたいと思っています。これは、キャッシュがフルページリクエストにわたって持続し、キャッシュがSharePointオンラインでも機能するようにしたいと考えています。
私は次のメカニズムを見ました:
- ファイルシステムまたは孤立したストレージでファイルを保存する - System.ioの名前空間がSandboxソリューションでブロックされているように見えるため、機能しません。
- ASP.NETキャッシュ/セッション/アプリケーションインフラストラクチャを使用しても、新しいページリクエストが作成されるたびにキャッシュがリセットされます。
- を使用して
Microsoft.Office.Server.ObjectCache.SPCache
インフラストラクチャ - 機能しないようで、キャッシュはASP.NETキャッシュと同じようにリセットされます。 - 手コードされたメモリ内キャッシュを使用:(
private static Dictionary<string, object> ...
) - 機能しません、辞書インスタンスはHTTPページリクエスト全体で失われます。
上記のすべては、SharePoint Sandboxソリューションにあらゆる種類のデータを保存する私の唯一のオプションがSharePointリスト/リスト項目を使用することであることを意味しますか?
解決
はい、この場合はSharePointリストが唯一の選択肢です。
各リクエストは、ASP.net/sharePointから特定のサンドボックスプロセスにマーシャルされています。これらのプロセスとアプリドメインは、同じマシンでも同じであることも保証されていないため、あらゆる種類のメモリキャッシュは問題ありません。
他のヒント
Webパートを作成する代わりに、ポストバックを生成しないSilverlightアプリを作成できます。
繰り返しになりますが、Silverlightアプリはクライアント側のオブジェクトモデルにより制限されています。
所属していません sharepoint.stackexchange