2012-02-20 14 views
6

मुझे निम्न कोड (ContentType लाइन) पर एक त्रुटि मिलती है (सर्वर HTTP हेडर भेजे जाने के बाद सामग्री प्रकार सेट नहीं कर सकता है।)। मुझे क्या बदलना चाहिए?HTTP शीर्षलेख भेजे जाने के बाद सर्वर सामग्री प्रकार सेट नहीं कर सकता

System.Web.HttpResponse response = System.Web.HttpContext.Current.Response; 
response.ClearContent(); 
response.ContentType = "text/plain"; 
response.AddHeader("Content-Disposition", "attachment; filename=" + System.IO.Path.GetFileName(PervasiveConstants.DownloadZipLocation) + ";"); 
response.TransmitFile(PervasiveConstants.DownloadZipLocation); 
response.Flush(); 
response.End(); 

यह शेयरपॉइंट 2010 वेबपार्ट के भीतर है।

+1

यह सभी सर्वरों के लिए सामान्य "समस्या" है। एक बार प्रोग्राम सामग्री उत्पन्न करना शुरू कर देता है, हेडर क्लाइंट को भेजे जाने चाहिए और बदला नहीं जा सका। प्रोग्रामर में कहीं भी शीर्षलेख सेट करने के लिए, आपको आउटपुट बफरिंग या कुछ हद तक सक्षम करने की आवश्यकता है। इसे अपाचे/PHP में "आउटपुट बफरिंग" कहा जाता है, लेकिन अन्य सर्वरों में समान चीज होनी चाहिए। – kirilloid

+1

आप 'ClearContent' से क्यों शुरू करते हैं? अगर प्रतिक्रिया पहले से * सामग्री * है, तो आपका कोड शायद प्रक्रिया में बहुत देर हो रहा है। –

उत्तर

5

response.BufferOutput = true; सेट करने का प्रयास HttpResponse.BufferOutput गुण पर एक नज़र डालें। response चर सेट करने के तुरंत बाद ऐसा करें।

+1

मैं इस्तेमाल किया ** System.Web.HttpResponse प्रतिक्रिया = System.Web.HttpContext.Current.Response; ** ** Response.BufferOutput = true ** लेकिन मैं अभी भी एक ही त्रुटि मिलती है। –

1

मेरे पास वेबफॉर्म पर एक बहुत ही समान समस्या थी। मैं पीछे कोड में मेरे बटन के लिए निम्न कोड जोड़कर इस समस्या हल हो जाती:

ScriptManager.GetCurrent(this).RegisterPostBackControl(btnPrint); 
-1

मैं एक ही समस्या थी और निम्नलिखित समाधान समस्या हल, रन response.AddHeader(

0

यह समाधान से पहले एक response.ClearHeaders(); चलाने मेरे लिए काम किया, विधि की शुरुआत पर कोड की इस पंक्ति जोड़ने के लिए,

Server.ClearError(); 
संबंधित मुद्दे

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