मेरे पास वर्तमान में एक .net mvc3 एप्लिकेशन है जो एकाधिक स्थानों में समान विचारों को प्रबंधित करने के लिए ज़िम्मेदार है जो समान नियंत्रकों का उपयोग करते हैं जैसे site1/v1/views/index.cshtml
और site1/v2/views/index.cshtml
।एमवीसी रेजर ViewEngine थ्रेड-सुरक्षित नहीं है?
तरह से है कि यह नियंत्रित किया जाता है एक CustomControllerFactory कि DefaultControllerFactory से और CreateController विधि में विरासत में बनाने के द्वारा है, मौजूदा दृश्य इंजन स्पष्ट और है कि मौजूदा यूआरएल पर आधारित दृश्य स्थान स्वरूपों निर्दिष्ट करता है एक नए कस्टम 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, लेकिन स्पष्ट रूप से कस्टम viewEngine में usecache = false
सेट करने के बाद, ऐसा लगता है इस ViewEngines class not being thread safe के साथ क्या करना अधिक मिल गया है लगता है।
क्या किसी के पास कोई भी विचार है कि मैं एक ही परिणाम कैसे पूरा कर सकता हूं, लेकिन एक अलग तरीके से? पहले से
धन्यवाद।
यकीन नहीं तुम ऐसा कैसे कर रहे हैं, लेकिन सभी अनुरोधों को भर में किसी भी स्थिर वस्तुओं साझा कर रहे हैं - जो आपकी समस्या से संबंधित हो सकती ... – Buildstarted