दिलचस्प पोस्ट
लॉगिन सिस्टम के रूप में ओपन आईडी का उपयोग कैसे करें पायथन के साथ एप इंजन पर एक फाइल पढ़ें? बैकस्टैक्स में नवीनतम टुकड़ा प्राप्त करें targetSdkVersion सेटिंग SQL क्वेरी के निष्पादन के आदेश केंद्र क्षैतिज रूप से div के भीतर छवि संरेखित करें एक सूची अधिकतम अधिकतम कितने आंकड़े रख सकता है? तत्व की पैरेंट डिविज़ प्राप्त करना संसाधन से भाषा की विशिष्ट स्ट्रिंग लोड करें? पता लगाएँ कि पाठ में अतिप्रवाह है पायथन में विधि पैरामीटर नाम प्राप्त करना MySQL विदेशी कुंजी प्रतिबंध नहीं जोड़ सकते उत्पत्ति को ggplot2 (R) में 0 पर प्रारंभ करने के लिए मजबूर करें एंड्रॉइड: एक बटन या छवि बटन पर पाठ और छवि का संयोजन इनो सेटअप घटकों पर लंबे विवरण

एएसपी.नेट एमवीसी में सत्र अनुरोध प्रतिवेदन रद्द करें

मैं चित्रों की सेवा के लिए एएसपी.नेट एमवीसी में एक ActionResult का निर्माण कर रहा हूं। सत्र राज्य सक्षम होने के साथ, आईआईएस एक ही उपयोगकर्ता से एक ही समय में एक ही अनुरोध को संभालता है। (यह सिर्फ एमवीसी में सच नहीं है।)

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

मुझे यह छवि क्रिया अतुल्यकालिक होने चाहिये – मुझे पूरा करने के लिए पिछले एक की आवश्यकता के बिना प्रत्येक छवि के लिए एकाधिक छवि अनुरोध करना चाहते हैं (यदि छवियाँ केवल स्थिर फ़ाइलें थी, तो आईआईएस उन्हें इस तरह से सेवा देगी।)

इसलिए, मैं सिर्फ उस क्रिया के कॉल के लिए सत्र अक्षम करना चाहता हूं, या निर्दिष्ट करने के लिए कि कुछ अनुरोधों के लिए सत्र की स्थिति नहीं है किसी को भी पता है कि यह कैसे एमवीसी में किया जाता है? धन्यवाद!

वेब के समाधान से एकत्रित समाधान "एएसपी.नेट एमवीसी में सत्र अनुरोध प्रतिवेदन रद्द करें"

इसके लिए एक्शन फ़िल्टर लागू करने के बजाय, आप RouteHandler क्यों लागू नहीं करते हैं?

यहाँ सौदा है – GetHttpHandler का एक तरीका है – GetHttpHandler जब आप एक एएसपी.नेट एमवीसी को एक नियंत्रक के लिए अनुरोध करते हैं, तो डिफ़ॉल्ट रूप से रूटिंग इंजन का एक नया उदाहरण MvcRouteHandler बनाकर अनुरोध संभालता है, जो एक MvcHandler देता है। MvcHandler का एक कार्यान्वयन है जो कि (आश्चर्य!) IRequiresSessionState इंटरफ़ेस से चिह्नित है IRequiresSessionState यही कारण है कि एक सामान्य अनुरोध सत्र का उपयोग करता है।

यदि आप मेरे ब्लॉग पोस्ट का पालन करते हैं तो छवियों की सेवा के लिए एक कस्टम RouteHandler ( RouteHandler का उपयोग करने के बजाय) कैसे लागू करें – आप सत्र-टैग किए गए IHttpHandler वापस छोड़ सकते हैं

इस पर IIS को तुल्यकालन करने से मुक्त होना चाहिए I यह भी अधिक प्रदर्शन करने वाला होगा क्योंकि यह फिल्टर के साथ निपटने वाले MVC कोड के सभी परतों को छोड़ रहा है।

यदि कोई भी स्थिति में है, तो मैं वहां गया था, जहां आपका छवि नियंत्रक को केवल सत्र तक पहुंच की जरूरत है, तो आप अपने नियंत्रक पर सत्रस्थित विशेषता डाल सकते हैं

 [SessionState(SessionStateBehavior.ReadOnly)] 

अधिक जानकारी के लिए http://msdn.microsoft.com/en-us/library/system.web.mvc.seessionstateattribute.aspx देखें।

https://stackoverflow.com/a/4235006/372926 पर धन्यवाद

दूसरे डोमेन से चित्रों की सेवा करने का प्रयास करें तो छवियों की तरह कुछ। Mysite.com

इससे आपको दो लाभ मिलेंगे: एक, सत्र एक कुकी द्वारा ट्रैक किए जाते हैं, इसलिए images.mysite.com में कुकी नहीं होगी दो, यह आपको छवियों को पुनः प्राप्त करने के लिए एक अतिरिक्त दो समवर्ती अनुरोध देगा।

क्या आपने एचटीटीपीएंडलर की स्थापना के लिए अपनी छवियों को सेट करने पर विचार किया है?

सत्र का स्थान विशेषता काफी उपयोगी है यदि आप mvc3 का उपयोग करते हैं एमवीसी 2 के साथ इसे कैसे प्राप्त किया जाए, इसके लिए थोड़ा अधिक कोडिंग की आवश्यकता होती है।

आइडिया एस्प.net को बताने के लिए है कि विशिष्ट अनुरोध सत्र ऑब्जेक्ट का उपयोग नहीं करेंगे।

इसलिए विशिष्ट अनुरोधों के लिए कस्टम रूट हैंडलर बनाएं

 public class CustomRouteHandler : IRouteHandler { public System.Web.IHttpHandler GetHttpHandler(RequestContext requestContext) { requestContext.HttpContext.SetSessionStateBehavior(System.Web.SessionState.SessionStateBehavior.ReadOnly); return new MvcHandler(requestContext); } } 

सत्रस्थापक एंवम में 4 सदस्य हैं, आपको एसिंक व्यवहार प्राप्त करने के लिए "अक्षम" या "केवल पढ़ने योग्य" मोड का उपयोग करना चाहिए।

इस कस्टम रूट हैंडलर को बनाने के बाद, सुनिश्चित करें कि आपके विशिष्ट अनुरोध इस हैंडलर के माध्यम से चलाए जाते हैं। यह Global.asax पर नये मार्गों को परिभाषित करके किया जा सकता है

 routes.Add("Default", new Route( "{controller}/{action}", new RouteValueDictionary(new { controller = "Home", action = "Index"}), new CustomRouteHandler() )); 

इस मार्ग को जोड़ना आपके कस्टम रूट हैंडलर वर्ग द्वारा आपके सभी अनुरोधों को प्रबंधित करने के लिए बनाता है आप विभिन्न मार्गों को परिभाषित करके इसे विशिष्ट बना सकते हैं।

कस्टम ControllerFactory वर्ग के लिए DefaultCOntrollerFactory बदलें डिफ़ॉल्ट नियंत्रक। TempDataProvider सत्र का उपयोग करें। आप इसे बदल सकते हैं।

1.सेट करें web.config / system.web / sessionState: मोड = "बंद"

2.create शब्दकोशटेम्पडेटाप्रदाता वर्ग।

  public class DictionaryTempDataProvider : ITempDataProvider { public IDictionary<string, object> LoadTempData(ControllerContext controllerContext) { return new Dictionary<string, object>(); } public void SaveTempData(ControllerContext controllerContext, IDictionary<string, object> values) { } } 

3.Create शब्दकोशटेम्प DataControllerFactory

  public class DictionaryTempDataControllerFactory : DefaultControllerFactory { public override IController CreateController(System.Web.Routing.RequestContext requestContext, string controllerName) { var controller = base.CreateController(requestContext, controllerName) as Controller; if (controller!=null) controller.TempDataProvider = new DictionaryTempDataProvider(); return controller; } } 

4.In global.asax.cs Apprication_Start ईवेंट सेट शब्दकोशटेम्पडेटा नियंत्रकफिचरि।

 protected void Application_Start() { RegisterRoutes(RouteTable.Routes); ControllerBuilder.Current.SetControllerFactory( new DictionaryTempDataControllerFactory() ); } 

मैं भी एक ही समस्या में आया और आर एंड डी करने के बाद इस लिंक ने मेरे लिए काम किया संदर्भ: https://techatfingers.wordpress.com/2016/06/14/session-state-on-action/

  1. कस्टम विशेषता बनाएँ
  2. वर्ग DefaultControllerFactory में मौजूद "GetControllerSessionBehavior" विधि को ओवरराइड करें
  3. इसे वैश्विक। एस्पक्स में पंजीकृत करें

1> कस्टम विशेषता बनाएँ

 public sealed class ActionSessionStateAttribute : Attribute { public SessionStateBehavior SessionBehavior { get; private set; } public ActionSessionStateAttribute(SessionStateBehavior sessionBehavior) { SessionBehavior = sessioBehavior; } } 

2. ओवरराइड करें

 public class SessionControllerFactory : DefaultControllerFactory { protected override SessionStateBehavior GetControllerSessionBehavior(RequestContext requestContext, Type controllerType) { if (controllerType == null) return SessionStateBehavior.Default; var actionName = requestContext.RouteData.Values["action"].ToString(); Type typeOfRequest=requestContext.HttpContext.Request.RequestType.ToLower() =="get"?typeof(HttpGetAttribute):typeof(HttpPostAttribute); // [Line1] var cntMethods = controllerType.GetMethods() .Where(m => m.Name == actionName && ( ( typeOfRequest == typeof(HttpPostAttribute) && m.CustomAttributes.Where(a => a.AttributeType == typeOfRequest).Count()>0 ) || ( typeOfRequest == typeof(HttpGetAttribute) && m.CustomAttributes.Where(a => a.AttributeType == typeof(HttpPostAttribute)).Count() == 0 ) ) ); MethodInfo actionMethodInfo = actionMethodInfo = cntMethods != null && cntMethods.Count() == 1 ? cntMethods.ElementAt(0):null; if (actionMethodInfo != null) { var sessionStateAttr = actionMethodInfo.GetCustomAttributes(typeof(ActionSessionStateAttribute), false) .OfType<ActionSessionStateAttribute>() .FirstOrDefault(); if (sessionStateAttr != null) { return sessionStateAttr.Behavior; } } return base.GetControllerSessionBehavior(requestContext, controllerType); } 

3. Global.asax में क्लास दर्ज करें

 public class MvcApplication : System.Web.HttpApplication { protected void Application_Start() { // --- other code --- ControllerBuilder.Current.SetControllerFactory(typeof(SessionControllerFactory)); } } 

हमारे सर्वर पर, आईआईएस सत्रों के बारे में भी नहीं जानता – यह एएसपी.नेट स्टैक है जो एक समय में एक सत्र के लिए अनुरोध करता है। स्थैतिक फ़ाइलें, जैसे छवियां, कभी प्रभावित नहीं होती हैं

क्या यह संभव है कि आपका एएसपी.नेट ऐप आईआईएस के बजाय फाइलों की सेवा कर रहा है?

नया नियंत्रक बनाएं

कंट्रोलर को सैंडिव करें [सत्र-सत्र (सत्रः स्टेशनबाय। अक्षम)]

रिफ़ैक्टर कोड जिसे आप देख सकते हैं कि उस नियंत्रक के लिए अक्षम है