私は現在、同じコントローラも使用する複数の場所で同様のビューを管理する.net mvc3アプリケーションを持っています(site1/v1/views/index.cshtml
とsite1/v2/views/index.cshtml
など)。MVC Razor ViewEngineはスレッドセーフではありませんか?
この処理方法は、DefaultControllerFactoryおよびCreateControllerメソッドを継承するCustomControllerFactoryを作成して、既存のビューエンジンをクリアし、現在のURLに基づいてビューのロケーションフォーマットを指定する新しいカスタムviewEngineを追加することです。
site1.com/v1/index.cshtml
上のユーザの土地ならば、viewengineはのビューの場所を指定します:
string versionDirectory = "v1";
ViewLocationFormats = new[]{ versionDirectory + "/Views/{0}.cshtml",
"/Views/{0}.cshtml",
"~/Shared/{0}.cshtml"
};
を私が午前問題は、複数のユーザーが、すべてのユーザーがほぼ同じ時間に別のページに着陸あればということです同じビューが表示されます。
Initially i thought this was related to cachingですが、usecache = false
をカスタムviewEngineに明示的に設定した後は、ViewEngines class not being thread safeともっと関係があるようです。
どのように私は同じ結果を達成することができますが、別の方法で誰もがアイデアを持っていますか?
ありがとうございます。
どのようにしているのかわかりませんが、静的オブジェクトはすべてのリクエストで共有されています。これは問題に関連している可能性があります。 – Buildstarted