यह स्मृति में कैश किया गया है, डिस्क पर कैशिंग कोई समझ नहीं आता है, यह पहले से ही डिस्क पर है।
एएसपी.नेट में सबसे पहले आप यह सुनिश्चित करना चाहते हैं कि आप HttpContext ऑब्जेक्ट के GetSection
विधि के माध्यम से कॉन्फ़िगरेशन अनुभागों तक पहुंचें (यह एएसपी.नेट द्वारा प्रबंधित कैश की गई प्रतियों का उपयोग करता है)।
कॉन्फ़िगरेशन मानों तक पहुंचने का प्रदर्शन अनुभाग ऑब्जेक्ट (गेटसेक्शन द्वारा लौटाई गई वस्तु) के आंतरिक कार्यान्वयन का एक कार्य है। एक ConfigurationSection
बस एक डोम नोड के लिए रैपर के रूप में कार्य कर सकता है जो यह किसी संपत्ति के लिए प्रत्येक अनुरोध पर पढ़ सकता है। ओटीएच यह मूल्य को कैश कर सकता है और परिवर्तनों के लिए देख सकता है।
मेरी सलाह होगा होना अपने कोड सरल रख सकते हैं और मूल्यों आप GetSection
के माध्यम से की जरूरत के बजाय कहीं और उनकी कॉपी पकड़ करने का प्रयास का उपयोग लेकिन हर तरह से वस्तु एक अनुरोध करता है, तो की अवधि के लिए GetSection
द्वारा वापस लिए एक संदर्भ को बनाए रखने आप इससे कई मूल्य लाने जा रहे हैं।
डिस्क पर एक क्रमबद्ध तरीके से हो सकता है ... ठीक है, ठीक है, यह मूर्खतापूर्ण है, मुझे पता है। ऐसा नहीं सोचा था क्योंकि मैंने लिखा था ... :-) – splattne
रुको ... क्या मैं पागल हूँ? मैं RedGate परावर्तक में HttpContext.GetSection को देख रहा हूं, और ऐसा लगता है कि यह ConfigManager.GetSection को आंतरिक रूप से कॉल करता है, जो ऐसा नहीं लगता है कि यह किसी भी चीज़ को कैश करता है। अगर मुझे कुछ याद आया तो कृपया मुझे बताएं। –
@Dan: आप यह निर्दिष्ट नहीं करते कि आप कौन सा संस्करण देख रहे हैं, 2.0.0.0 'कॉन्फ़िगरेशन प्रबंधक' पर वापस आ गया है लेकिन इस संदर्भ में अनुभाग प्राप्त करने के लिए 'कैश्डपाथडेटा' का उपयोग करेगा। इसका कारण यह है कि कई 'web.config' फ़ाइलें शामिल हो सकती हैं (वर्तमान पथ में प्रत्येक फ़ोल्डर में से एक), पथ के लिए प्रस्तुत किए जाने वाले कॉन्फ़िगर की वास्तविक स्थिति उन सभी से बनी है। – AnthonyWJones