asp.net - Replacement for HttpContext.Current.Request.ServerVariables["SERVER_NAME"] in Integrated Mode -
एचटीटीपीसीओन्टेक्स्ट का उपयोग कर.सुरक्षित। अनुरोध। एकीकृत मोड में ["SERVER_NAME"] आईआईएस 7 में एक त्रुटि देता है:
क्या एचटीटीपीसीटीईएक्स.कुरंट.सुक्वेत के लिए वैश्विक.एएसएक्स कोड में इस्तेमाल किया जा सकता है एक विकल्प है? सर्वर "[" SERVER_NAME "]?
यह उपयोग करने के समान होगा
स्ट्रिंग स्ट्रैपथ = एचटीटीपी कॉन्टेक्स। चालू। सर्फर .मैपपथ (एचटीपीआरटीएमईएमएक्सडॉमैन ऐप वर्चुअलपाथ);
के बजाय
// स्ट्रिंग strpath = HttpContext.Current.Server.MapPath (HttpContext.Current.Request.ServerVariables ["PATH_INFO"]);
ऐप के दौरान पाइप लाइन में अब कोई अनुरोध संदर्भ नहीं है, इसलिए मैं नहीं कर सकता कल्पना करें कि किसी भी तरह का सर्वर / पोर्ट अगले वास्तविक अनुरोध पर आ सकता है।
यहां क्लासिक मोड में नहीं होने पर मैं इसका उपयोग कर रहा हूं। ओवरहेड नगण्य है।
/// & lt; सारांश & gt; /// कक्षा को केवल पहली अनुरोध पर कहा जाता है /// & lt; / सारांश & gt; प्राइवेट क्लास एपस्टार्ट {स्टैटिक बूल _init = false; निजी स्थिर ऑब्जेक्ट _lock = नया ऑब्जेक्ट (); /// & lt; सारांश & gt; /// पहले अनुरोध के बाद कुछ नहीं करता है /// & lt; / सारांश & gt; /// & lt; परम नाम = "संदर्भ" & gt; & lt; / param & gt; सार्वजनिक स्थैतिक शून्य प्रारंभ (एचटीटीपी संदर्भ संदर्भ) {यदि (_init) {return; } // क्लास स्तरीय लॉक बनाते हैं यदि कई सत्र एक साथ ताला (_lock) शुरू करते हैं {if (! _init) {string server = context.Request.ServerVariables ["SERVER_NAME"]; स्ट्रिंग पोर्ट = संदर्भ। अनुरोध। सर्वरवेयर ["SERVER_PORT"]; HttpRuntime.Cache.Insert ("basePath", "http: //" + सर्वर + ":" + + पोर्ट + "/"); }}}} सुरक्षित शून्य सत्र_स्टार्ट (ऑब्जेक्ट प्रेषक, EventArgs ई) {// पहले अनुरोध पर कैश को प्रारंभ करता है AppStart.Start (HttpContext.Current); }
Comments
Post a Comment