किसी वेब एप्लिकेशन के लिए, यह सत्र को संभालने का एक अच्छा तरीका है, सेटिंग <property name="current_session_context_class">managed_web</property>
सेटिंग का उपयोग करना है, आरंभ/EndRequest पर CurrentSessionContext.Bind/Unbind
पर कॉल करें। तो मैं भंडार वर्ग में sessionFactory.GetCurrentSession()
का उपयोग कर सकता हूं।पृष्ठभूमि-श्रमिकों के साथ वेब अनुप्रयोग के लिए सत्र प्रबंधन रणनीति को रोकें?
यह सभी पृष्ठ अनुरोध के लिए ठीक काम करता है। लेकिन मेरे पास पृष्ठभूमि कार्यकर्ता सामान कर रहे हैं और सामान करने के लिए एक ही भंडार वर्गों का उपयोग कर रहे हैं। ये वेब अनुरोध के भीतर नहीं चलते हैं, ताकि सत्र प्रबंधन काम नहीं करेगा।
कोई सुझाव कैसे हल किया जा सकता है?
यदि आप 'HttpContext.Current' को संदर्भित नहीं करना चाहते हैं, तो आप यह निर्धारित करने के लिए कि कोई संदर्भ उपलब्ध है या नहीं, आप 'NHibernate.Context.ReflectiveHttpContext' का उपयोग कर सकते हैं। यह उन परिस्थितियों में उपयोगी है जहां आप उदाहरण के लिए डेटा एक्सेस प्रोजेक्ट में 'System.Web' का संदर्भ नहीं देना चाहते हैं। – Siewers
धन्यवाद, अच्छी टिप! मैंने इसके बजाय कोड का उपयोग करने के लिए संपादित किया है! :) – Allrameest
बहुत बहुत धन्यवाद! आधा दिन इस पर परेशान हो रहा है - मेरे पास एक डब्ल्यूसीएफ सेवा के साथ एक वेबफॉर्म प्रोजेक्ट है, और 'CurrentSessionContext.Bind'' NullReferenceException' फेंक रहा था। आपका कोड मेरे लिए बेकार ढंग से काम करता है: डी –