asp.net mvc - How to upload files larger than 16k to a WCF-service? -


एक लंबी कहानी कम करने के लिए:

  • वेब अनुप्रयोग बनाना

  • प्रत्येक उपयोगकर्ता प्रोफ़ाइल में बस एक प्रोफाइल छवि है, जो डेटाबेस में संग्रहीत है

  • नीचे की परत एडीओनेट इकाई ढांचे का उपयोग करती है

  • अनुप्रयोगों के नीचे डेटा एक्सेस परत पर डेटाबेस में छवियों को सम्मिलित करना ठीक काम करता है

  • शीर्ष स्तर पर, एक एमवीसी आवेदन में, हम प्रोफ़ाइल छवि को प्रदर्शित करने के लिए WCF का उपयोग करते हैं। छवि प्रदर्शित करना ठीक काम करता है, चाहे आकार क्या होता है, जिसका मतलब है कि अपलोड करने वाली छवियां एकमात्र समस्या है।

  • मेरे अपलोड चित्र-फ़ंक्शन में मैं 16k तक चित्र अपलोड कर सकता हूं। कुछ भी बड़ा नहीं है।

  • मुझे सभी app.config और web.config-files में सभी maxBufferSize और maxReceivedMessageSize गुण मिले हैं समाधान में, और मूल्यों को 1 एमबी (1 048 576) में बदल दिया

यह मुझे जो त्रुटि मिलती है:

फ़ॉर्मेटर फेंक दिया संदेश को deserialize करने का प्रयास करते समय एक अपवाद: पैरामीटर को deserialize करने का प्रयास करते समय एक त्रुटि हुई थी। इनरएक्सेप्शन संदेश था 'प्रकार माइग्रोइज के ऑब्जेक्ट को डिसेराइज़ करने में कोई त्रुटि थी। कॉमन्स। बिजनेसऑब्जेक्ट। यूज़र प्रोफाइल XML डेटा पढ़ने के दौरान अधिकतम सरणी लंबाई कोटा (16384) पार कर लिया गया है XML रडर बनाने के दौरान उपयोग किए गए XmlDictionaryReaderQuotas वस्तु पर MaxArrayLength गुण को बदलकर यह कोटा बढ़ाया जा सकता है रेखा 1, स्थिति 44 9 78. '। कृपया अधिक जानकारी के लिए InnerException देखें।

यह भी मुझे बताता है कि त्रुटि के स्रोत फ़ाइल संदर्भ संदर्भ में reference.cs है ... और अब मैं मूल रूप से नहीं समझ सकता कि यह वास्तव में कहां से आता है। कोई भी एक सुराग है?

त्रुटि संदेश यह सब कहते हैं, वास्तव में :-)

< Blockquote>

एक्सएमएल डेटा पढ़ने के दौरान अधिकतम सरणी लंबाई कोटा (16384) को पार कर लिया गया है।

सभी maxbufferSize आदि सेटिंग्स के अलावा, नामक सेटिंग्स का एक सेट भी है ReaderQuotas जो आप बंधन को अनुकूलित करते समय सेट कर सकते हैं। उन सेटिंग्स में से एक अगर "मैक्सएरेरेलेन्थ" जो कि 16'384 के लिए डिफ़ॉल्ट है।

  & lt; बाइंडिंग & gt; & LT; wsHttpBinding & gt; & Lt; बाध्यकारी नाम = "डिफ़ॉल्ट" बाईपासप्रोक्सीऑनोकल = "सच" उपयोगडिफ़ॉल्ट WebProxy = "true" & gt; & Lt; readerQuotas maxArrayLength = "16384" maxBytesPerRead = "4096" maxDepth = "32" maxNameTableCharCount = "16384" अधिकतम स्ट्रिंग कॉन्टैन्ट लैंग = "8192" / & gt; & Lt; / बाध्यकारी & gt; & gt; & Lt; / wsHttpBinding & gt; & Lt; / बाइंडिंग & gt;  

ये सेटिंग्स इस बात पर प्रभाव डालती हैं कि सर्वर पर डेटा कंट्रैक्ट्रेसेरियलाइज़र आपके संदेश को कैसे डिसेराइज कर सकता है - आप एमएसडीएन डॉक्स पर विवरण देख सकते हैं और मान की जरूरत के अनुसार सेट कर सकते हैं।

मार्क


Comments

Popular posts from this blog

c# - ListView onScroll event -

PHP - get image from byte array -

Linux Terminal Problem with Non-Canonical Terminal I/O app -