/ / बचत JsonResult से HttpContext.Session - json, session, asp.net-core-mvc

JsonResult को HttpContext में सहेजना। सत्र - जेसन, सत्र, asp.net-core-mvc

इस पर आधारित लेख मैं अपने jsonresult को इस तरह बचा रहा हूँ

HttpContext.Session.SetObjectAsJson(multiple, jsonresult);

तो मैं इसे इस तरह से पुनः प्राप्त कर रहा हूँ

var myComplexObject = HttpContext.Session.GetObjectFromJson<FileUploads>(multiple);

मेरी समस्या यह है कि जब मैं इसे पुनर्प्राप्त करता हूं तो मुझे अलग-अलग डेटा मिल रहा है। उदाहरण के लिए jsonresult में FileUploadsID है, लेकिन myComplexObject की एक अलग आईडी है।

जब मैं उपयोग करता हूँ

HttpContext.Session.GetString(multiple);

FileUploadsID सही है। यह सिर्फ जब मैं GetObjectFromJson का उपयोग करता हूं कि यह अलग है।

क्या मैंने यह सही किया है? मुझे यकीन नहीं है कि क्या चल रहा है।

उत्तर:

जवाब के लिए 0 № 1

सत्र राज्य में फ़ाइल स्टोर करना एक बुरा अभ्यास क्यों है?

सबसे पहले, HTTP कम राज्य है। हम इसे ASP.NET MVC में रखना चाहते हैं, इसलिए हम ASP.NET MVC में सत्र राज्य का उपयोग यथासंभव नहीं करने का प्रयास करते हैं जब तक कि हमें वास्तव में नहीं करना है।

सत्र स्थिति में डेटा संग्रहीत करना मूल रूप से सर्वर की मेमोरी में उन्हें संग्रहीत कर रहा है। ~ यदि हम बड़ी मात्रा में डेटा संग्रहीत करते हैं, तो सर्वर अंततः आउटऑफमैरी अपवाद को फेंक देगा, और ऐप डोमेन फिर से शुरू हो जाएगा।

इसके अलावा, यदि एप्लिकेशन किसी भी कारण से क्रैश हो जाता है, तो हम मेमोरी में संग्रहीत सब कुछ खो देंगे।

~ वेब फ़ार्म में, सत्र को वितरित प्रणाली में संग्रहीत किया जाता है जैसे कि SQL सर्वर या रेडिस कैश जैसे फ़ार्म में सत्र को सिंक्रनाइज़ करने के लिए।