पृष्ठभूमि कहानी:आईई 8 और क्लाइंट-साइड संचय
मैं एक आईआईएस 6 वेब सर्वर पर .NET 3.5 में एक वेब पोर्टल है। वर्तमान में एक ऐसा पृष्ठ है जिसे मूल्य दिया जाता है और उस मूल्य के आधार पर वेब सेवा पर एक पीडीएफ फाइल दिखती है और उपयोगकर्ता को वेब पेज में किसी अन्य टैब में परिणाम प्रदर्शित करती है। यह निम्नलिखित कोड के साथ किया जाता है।
context.Response.ClearContent();
context.Response.ClearHeaders();
context.Response.Clear();
context.Response.AddHeader("Accept-Header", pdfStream.Length.ToString());
context.Response.ContentType = "application/pdf";
context.Response.BinaryWrite(pdfStream.ToArray());
context.Response.Flush();
यह काम करता है और वर्षों से काम करता है। हालांकि हमें क्लाइंट से कोई समस्या मिली कि एक विशेष ग्राहक पीडीएफ को हर बार एक ही पीडीएफ के रूप में लौटा रहा था जब तक कि वे अस्थायी इंटरनेट कैश को मंजूरी नहीं देते।
मैंने सोचा ओह अच्छा, यह एक आसान है। मैं केवल कैश हेडर को प्रतिक्रिया में जोड़ने के लिए प्रतिक्रिया दूंगा। इसलिए मैंने निम्नलिखित जोड़ा:
context.Response.Cache.SetCacheability(HttpCacheability.NoCache);//IE set to not cache
context.Response.Cache.SetNoStore();//Firefox/Chrome not to cache
context.Response.Cache.SetExpires(DateTime.UtcNow); //for safe measure expire it immediately
त्वरित परीक्षण के बाद मुझे प्रतिक्रिया हेडर में बिल्कुल वही मिला जो मुझे उम्मीद थी।
Cache-Control no-cache, no-store
Pragma no-cache
Expires -1
समस्या:
तो इस लाइव चला गया। सबकुछ शांत दिन लग रहा था। उसके बाद, बम, हर कोई सफेद स्क्रीन प्राप्त करना शुरू कर दिया और कोई पीडीएफ प्रदर्शित नहीं हुआ। आगे की जांच के बाद, मुझे पता चला कि यह केवल आईई 6,7,8 था। क्रोम ठीक है, फ़ायरफ़ॉक्स ठीक है, सफारी जुर्माना, यहां तक कि आईई 9 जुर्माना भी है। यह जानने के बिना कि यह क्यों हुआ, मैंने अपना परिवर्तन वापस कर दिया और इसे तैनात कर दिया, और सब कुछ फिर से काम करना शुरू कर दिया।
मैंने यह पता लगाने की कोशिश की है कि मेरे कैशिंग हेडर आईई 6-8 को कोई फायदा नहीं पहुंचाते हैं। क्या किसी ने आईई 6-8 के साथ इस प्रकार के मुद्दे का अनुभव किया है? क्या मैं कुछ छोड़ रहा हूं? किसी भी अंतर्दृष्टि के लिए धन्यवाद।
इसे पोस्ट करने के लिए धन्यवाद। मैंने इतने घंटों बर्बाद कर दिए और बहुत निराशा से यह पता लगाने की कोशिश की। –