दिलचस्प पोस्ट
HTML5 फ़ॉर्म तत्वों की मान्यता अक्षम करें PHP में URL डिकोडिंग एक एंड्रॉइड एप्लिकेशन को 'पुनः आरंभ' कैसे करें Android getIdentifier का उपयोग करना () कैसे कार्य प्रबंधक क्षुधा मार? आईओएस पर डिवाइस के अभिविन्यास का मैं कैसे पता लगा सकता हूं? MockMvc का उपयोग करके एक वसंत नियंत्रक विधि कैसे परीक्षण करें? जावा / जेएएएसबी: एक विशेषता पर आधारित विशिष्ट उप-वर्ग के लिए यूनमरशॉल एक्सएमएल क्या git द्विआधारी अंतर एल्गोरिदम (डेल्टा स्टोरेज) मानकीकृत है? Google Maps API v3 + jQuery UI टैब्स के साथ समस्याएं HTTP त्रुटि 500.19 और त्रुटि कोड: 0x80070021 ओवरराइड किए गए विधियों के बदले में भिन्न हो सकते हैं? Android में कस्टम प्रगति बार? क्यों "जबकि (! Feof (फ़ाइल))" हमेशा गलत है? django आयात त्रुटि – कोई मॉड्यूल कोर। प्रबंधन नहीं है

ASP.NET कैसे उपयोगकर्ता के लिए स्ट्रीम करने के लिए फ़ाइल

शुरू में मैं यह पता लगाने की कोशिश कर रहा था कि अंतर क्या है। प्रतिक्रिया और बंद होने के बीच। अंत, लेकिन अधिक Googling और अनुसंधान करने के बाद, यह स्पष्ट है कि मैंने एक बाइट [] को वापस नहीं भेजा है ग्राहक को वापस भेजा मैं नीचे कोड नमूना छोड़ दूँगा, लेकिन मैं यह जानना चाहूंगा कि यह करने के लिए उद्योग मानक क्या है।

Byte[] myBytes = GetReportBytes(); HttpContext.Current.Response.ClearContent(); HttpContext.Current.Response.AppendHeader("content-length", myBytes.Length.ToString()); HttpContext.Current.Response.AppendHeader("content-Disposition", "attachment;filename=" + this.ReportFileName + GetReportExtension()); HttpContext.Current.Response.ContentType = GetApplicationContentType(); HttpContext.Current.Response.BinaryWrite(myBytes); HttpContext.Current.Response.Flush(); HttpContext.Current.Response.Close(); //CERT FIX //HttpContext.Current.Response.End(); 

वेब के समाधान से एकत्रित समाधान "ASP.NET कैसे उपयोगकर्ता के लिए स्ट्रीम करने के लिए फ़ाइल"

मैं Response.Close() नहीं दूंगा। Response.Close() या Response.End()Response.End()

Response.End() उस बिंदु पर पृष्ठ निष्पादन / रेंडरिंग को रोक देगा। Response.End() के बाद कोई कोड नहीं। Response.End() चलाया जाएगा। प्रतिक्रिया उस बिंदु पर समाप्त हो गई है जिसके साथ स्ट्रीम में कोई और आउटपुट नहीं जोड़ा गया है।

Response.Close() के समान है, लेकिन कोड को इसे बुलाया जाने के बाद निष्पादित करने की अनुमति देता है (लेकिन पृष्ठ प्रतिक्रिया में कोई और आउटपुट भेजा जा सकता है)।

Response.Flush() पृष्ठ पर किसी भी शेष प्रतिक्रिया आइटम भेजेगा।

आईआईएस कोर टीम सदस्य से :

रिस्पांस। क्लोज़ क्लाइंट को रीसेट पैकेट भेजता है और इसे गलती की स्थिति के अलावा अन्य किसी भी चीज में लेता है, सभी तरह की समस्याएं पैदा करेगा- उदाहरण के लिए, यदि आप पर्याप्त विलंब के साथ एक ग्राहक से बात कर रहे हैं, तो रीसेट पैकेट किसी भी अन्य प्रतिक्रिया डेटा को बफर कर सकता है सर्वर, ग्राहक या कहीं बीच में गिरा दिया जाए

इस विशेष मामले में, संपीड़न में प्रतिक्रिया के भीतर सामान्य पैटर्न की खोज करना शामिल है और कुछ अतिरिक्त प्रतिक्रियाओं को संपीड़न कोड द्वारा बफर करने के लिए अधिक दोहराए जाने वाले पैटर्न खोजने की संभावना बढ़ाने के लिए शामिल है – इस भाग को बफ़र ग्राहक के पास नहीं भेजा जा सकता है क्या करें। बंद करें ()।

संक्षेप में, प्रतिक्रिया का उपयोग न करें। बंद करें ()