हम उत्पाद को .NET 4.5 में अपग्रेड करने के बाद हमारी साइट पर कुछ अजीब व्यवहार कर रहे हैं। मैं जितना संभव हो उतना विशिष्ट होने की कोशिश करूंगा लेकिन समस्या अस्पष्ट है, इसलिए कृपया मेरे साथ भालू। इसके अलावा, इस परिदृश्य के लिए, इस धारणा के तहत काम करें कि कोई भी सर्वोत्तम प्रथाओं का पालन नहीं किया गया है।एएसपी.NET अनुरोध और .NET 4.5 - अजीब व्यवहार
उपयोगकर्ता ऐसे पृष्ठ पर आ रहा है जो कई jquery AJAX कॉल, असीमित रूप से, एक webservice पर बनाता है। इस पृष्ठ पर खराब डिज़ाइन/कोडिंग के कारण, यह हमेशा लोड होने में लग सकता है, लेकिन यह एक उप मेनू प्रदान करता है जिसे उपयोगकर्ता को एक्सेस की आवश्यकता होती है। एक बार पृष्ठ लोड होने के बाद, वे किसी अन्य पृष्ठ पर जाने के लिए मेनू विकल्पों में से एक पर क्लिक करते हैं। अभी तक कुछ खास नहीं है।
जब हम .NET 4.0 केवल स्थापित के साथ एक बॉक्स पर परफ़ॉर्मेंस उपयोग करते हैं, हम देख सकते हैं ASP.NET अनुरोध को अधिक या कम, जैसा कि आप उम्मीद करेंगे:
जब हम उस पर स्थापित करें .NET 4.5 के साथ एक बॉक्स स्थापित है, हम इसे प्राप्त करते हैं:
ऊपर वर्णित वर्कफ़्लो को निष्पादित करने के बाद, अनुरोध लटका हुआ है। कतारबद्ध नहीं है; वे बस वहां बैठते हैं।
आगे के शोध के बाद, हम देख रहे हैं कि दो अलग-अलग पृष्ठों के बीच क्लिक करना सिर्फ एक साधारण href नहीं है, लेकिन वास्तव में Response.Redirect (url) का उपयोग कर रहा है;
इसके अलावा, यह केवल आईई का उपयोग करते समय हो रहा है। फ़ायरफ़ॉक्स और क्रोम का उपयोग करते समय यह कोई समस्या नहीं है।
यहाँ क्या हम अब तक की कोशिश की है है:
- हम एम $ से संपर्क किया और उन्हें बाहर भेजा DebugDiag उदासीनता है। अब भी इंतज़ार।
- मैं आईआईएस गया हूं, साइट को असफल अनुरोधों का पता लगाने के लिए सेट किया है, और मुझे सब कुछ देने के लिए एक असफल अनुरोध फ़िल्टर स्थापित किया है। एक बार साइट लॉक हो जाने पर, मैं लॉग साफ़ करता हूं, और उसके बाद साइट लॉक के बाद क्या आता है इसकी जांच करें। जब भी यह AspNetSessionDataBegin और AspNetSessionDataEnd घटनाओं के बीच लटका रहा है।
- हमारे पास एक HttpHandler है जो सत्र को पढ़ता/लिखता है, और इसे अक्षम करने से अधिकांश भाग के लिए समस्या ठीक हो जाती है, लेकिन इस बारे में कोई स्पष्टीकरण नहीं है।
- jquery के ऑनलोड लोड हैंडलर, जो सभी शेष xmlhttp अनुरोधों को साफ़ और निरस्त करना चाहिए, लगातार निष्पादित नहीं होता है।
- इस patch स्थापित किया गया, अभी भी मदद नहीं की।
- हम वर्तमान में इस नेविगेशन तर्क में Response.Redirect (url) विधियों को बदल रहे हैं Response.Redirect (url, false); (ऊपर देखो)।
public class KeepSessionAliveHttpHandler : IHttpHandler, IRequiresSessionState { public bool IsReusable { get { return true; } } public void ProcessRequest(HttpContext context) { if (context.Session.IsNewSession) { string redirectUrl = context.Request.Url.AbsoluteUri.Replace(context.Request.Url.AbsolutePath, VirtualPathUtility.ToAbsolute(Constant.Page_Logout)); context.Response.Clear(); context.Response.ContentType = "application/json; charset=utf-8"; context.Response.Flush(); context.Response.Write("{\"IsSessionAlive\": \"false\", \"RedirectUrl\": \"" + redirectUrl + "\"}"); } else { context.Session["KeepSessionAlive"] = TimeZoneHelper.GetCurrentUtcDateTime(); context.Response.Clear(); context.Response.ContentType = "application/json; charset=utf-8"; context.Response.Flush(); context.Response.Write("{\"IsSessionAlive\": \"true\"}"); } } }
जहाँ हम अगले दिखना चाहिए पर कोई सुझाव:
के रूप में भी अनुरोध किया है, यहाँ HttpHandler कोड है?
क्या HttpHandler कैसा दिखता है? – Nate
क्या आपने अपनी प्रतिक्रिया बंद करने की कोशिश की है? { Context.Response.End() का प्रयास करें; } पकड़ (ThreadAbortException अं) {} पकड़ (अपवाद अं) {} – Sameh
@Sameh मैं कोशिश करूँगा, लेकिन मैं क्या बता सकते हैं कि हम इस का उपयोग हमारे jQuery ajax कॉल करने के लिए इस डेटा पहले जोड़ें करने के लिए से। प्रतिक्रिया समाप्त होने पर मुझे लगता है कि यह खत्म हो जाएगा। – Schandlich