2013-01-06 12 views
32

में शून्य है मैंने कुछ प्रश्न (Here और Here) देखा लेकिन वे मेरे प्रश्न का उत्तर नहीं देते हैं। मैं "AJAX.ashx" फ़ाइल का उपयोग करके अजाक्स को कॉल करने और सत्र तक पहुंचने के लिए फ़ंक्शन में कॉल करने का प्रयास कर रहा हूं। किसी कारण से, सत्र ऑब्जेक्ट का मूल्य शून्य है।HttpContext.Current.Session Ashx फ़ाइल

उपयोग उदाहरण:

Session = HttpContext.Current.Session // This is null 

या:

public virtual void ProcessRequest(HttpContext context) 
{ 
    System.Web.SessionState.HttpSessionState Session = context.Session; 
    // This is null 
} 

web.config में:

<sessionState timeout="1800"></sessionState> 
+0

http://stackoverflow.com/questions/2156524/asp-net-session-is-null-in-ashx-file का संभावित डुप्लिकेट, लेकिन इसका अच्छा जवाब और टिप्पणियां भी हैं। – goodeye

उत्तर

70

आप के रूप में यह की घोषणा पर अपने हैंडलर IRequiresSessionState पर जोड़ना होगा :

public class YourHandleName : IHttpHandler, IRequiresSessionState 
{ 
... 

डिफ़ॉल्ट रूप से हैंडलर IRequiresSessionState जोड़कर, उन्हें सत्र के साथ संलग्न करते हुए, उन्हें न्यूनतम रखने के लिए सत्र से कनेक्ट नहीं होते हैं।

+0

ध्यान दें कि यह भी विरासत में प्राप्त किया जा सकता है, यदि आपके सभी .ASHX.CS वर्ग एक ही कक्षा से प्राप्त होते हैं, और उस वर्ग में IRequiresSessionState इंटरफ़ेस है, तो आप प्रत्येक हैंडलर में वर्तमान सत्र तक पहुंचने में भी सक्षम होंगे। –

+2

@StevendeSalas ठीक है, लेकिन सिर्फ आपके ज्ञान के लिए, यदि आप कर सकते हैं, और हैंडलर पर विशेष रूप से सत्र से बचने के लिए बेहतर है, क्योंकि सत्र का अनुरोध करने वाला पृष्ठ या हैंडलर पूरी साइट कॉल को समाप्त होने तक लॉक करता है http://stackoverflow.com/ प्रश्न/11629600/करता-एएसपी-नेट-वेब-फॉर्म-रोक-ए-डबल-क्लिक-सबमिशन/11629664 # 11629664 – Aristos

+0

जानकारी के लिए कूल धन्यवाद, हमेशा –

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^