2010-01-28 18 views
6

द्वारा कैश किए जाने से रोकें जिस कंपनी के लिए मैं काम करता हूं वह इंट्रानेट वेब सामग्री को कैश करने के लिए हमारी अंतरराष्ट्रीय साइटों के बीच प्रॉक्सी/वैन त्वरक है। मेरे पास एक स्थान पर एक सर्वर पर एक सिल्वरलाइट एप्लिकेशन होस्ट किया जा रहा है, लेकिन किसी अन्य स्थान पर ग्राहकों द्वारा इसका उपयोग किया जा रहा है। जब उपयोगकर्ता सिल्वरलाइट ऐप को होस्ट करने वाले वेब पेज तक पहुंचते हैं, तो उन्हें प्रॉक्सी एक्सप फ़ाइल प्रॉक्सी द्वारा कैश किया जाता है, न कि सर्वर से नवीनतम संस्करण। स्थानीय उपयोगकर्ताओं को हमेशा नवीनतम एक्सप मिलता है क्योंकि उनके अनुरोध प्रॉक्सी से नहीं जा रहे हैं।सिल्वरलाइट xap को प्रॉक्सी सर्वर

मैंने कैशिंग को रोकने के लिए कहीं और वर्णित विभिन्न शीर्षलेख/मेटाडेटा तकनीकों का प्रयास किया है, और युक्त वेब पेज स्वयं को ताज़ा किया जा रहा है, लेकिन मुझे अभी भी पुरानी .xap फ़ाइल मिलती है। हमारी साइट के लिए प्रॉक्सी कैशिंग अक्षम करने के लिए हमारे आईटी व्यवस्थापक को प्राप्त करने से कम, क्या मैं कुछ भी कर सकता हूं यह सुनिश्चित कर सकता हूं कि नवीनतम xap फ़ाइल प्रॉक्सी के बजाय सर्वर से पुनर्प्राप्त हो जाए? युक्त पृष्ठ एएसपी.नेट है।

उत्तर

4

मैं जो करता हूं वह सिर्फ xap फ़ाइल के पथ के अंत में एक क्वेरीस्ट्रिंग जोड़ता है। फिर जब आप क्वेरीस्ट्रिंग चर बदलते हैं, तो प्रॉक्सी आदि को इसे एक नई फ़ाइल के अनुरोध के रूप में देखना चाहिए। अब तक यह मेरे लिए ठीक काम किया है।

तो बुनियादी तौर पर, जब एक सीधे-अप HTML फ़ाइल में एक .xap embedding, तो आप इस करना होगा:

<param name="source" value="ClientBin/SilverlightApplication1.xap?cachepreventer=whatevervalue"/> 

और फिर जब आप एक नया संस्करण को तैनात है, बस कुछ और करने के लिए "whatevervalue" में बदलें।

संपादित
मैं config से क्वेरी स्ट्रिंग मूल्य पढ़ेंगे तो आप अपने ऐप में कई स्थानों पर इस तकनीक का उपयोग करने के लिए की जरूरत है और सिर्फ asp.net का उपयोग करने के लिए पेज में लिखते हैं। इस तरह आपको केवल तैनात करते समय इसे एक ही स्थान पर अपडेट करना होगा।

+0

बिल्कुल सही! यह चाल है, धन्यवाद। –

+0

मेरे एसएल समाधान में, जो कुछ भी डिस्क पर एक्सएपी फ़ाइल का टाइमस्टैम्प (टिक नंबर) है। मैंने छोटे एएसपी.नेट सहायक को लागू किया है जो फ़ाइल के नाम पर एक क्वेरी के रूप में टाइमस्टैंप को जोड़ता है। इस तरह, यह पूरी तरह से स्वचालित है और आपको कहीं भी कुछ भी अपडेट करने की आवश्यकता नहीं है - बस XAP को क्लाइंटबिन में छोड़ दें और जब उपयोगकर्ता इसे लाने का प्रयास करता है तो इसे स्वचालित रूप से रीफ्रेश किया जाता है। फिर, एएसपीएक्स में, मेरे पास कुछ ऐसा है: " /> –

+0

यह वास्तव में चालाक है। मैं उस तकनीक पर स्विच करने का फैसला कर सकता हूं। –

2

आप XAP फ़ाइल लिया गया है और आप इसके बारे में चिंता नहीं करना चाहती यकीन हर बार बनाना चाहते हैं - बस < परम नाम = "source" मान का उपयोग = "ClientBin/YourSilverlightapp.xap < % = Guid.NewGuid()। ToString()% > "/ >

बेशक - यह स्वयं को भारी कैश लोड में उधार देता है। मैं उपरोक्त सहायक विधि की तरह करता हूं हालांकि यदि आप केवल क्लाइंट को प्रचारित करना चाहते हैं।

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