2008-10-15 12 views
8

प्लेटफार्म: आईआईएस 6, एएसपी.Net 2.0 (नेट 3.5), सर्वर 2003.मैं वास्तव में बड़ी फ़ाइल अपलोड को संभालने के लिए IIS को कैसे कॉन्फ़िगर कर सकता हूं?

मैं एक ऐसा एप्लिकेशन बना रहा हूं जो उपयोगकर्ता से फ़ाइलों को स्वीकार करता है, उन्हें संसाधित करता है, और परिणाम देता है। फ़ाइल को HTTP पोस्ट का उपयोग एएसपी.Net वेब फॉर्म में अपलोड किया जाता है। एप्लिकेशन कुछ बड़ी फाइलों (सैकड़ों एमबी) की उम्मीद कर रहा है।

मैं एक अच्छा प्रगति पट्टी के साथ अपलोड को पूरा करने के लिए SWFUpload का उपयोग कर रहा हूं, लेकिन यह इस मुद्दे में योगदान नहीं दे रहा है, क्योंकि जब मैं इसे अपने अपलोड Accepter पृष्ठ पर इंगित एक मानक HTML फॉर्म का उपयोग करके बाईपास करता हूं, तो मुझे एक ही त्रुटि मिलती है । प्रगति पट्टी का उपयोग करते समय, अपलोड 100% तक जारी रहता है, फिर विफल रहता है। एक मानक रूप के साथ, व्यवहार एक जैसा प्रतीत होता है।

मुझे अभी एक समस्या है जिसमें लगभग 150 एमबी फ़ाइल अपलोड हो रही है। मैंने हर सेटिंग्स को बदल दिया है जो मुझे मिल सकता है, लेकिन अभी भी कोई भाग्य नहीं है।

web.config में: जोड़ा गया यह अंदर system.web:

<httpRuntime executionTimeout="3600" maxRequestLength="1536000"/> 

machine.config में: system.web अंदर

यहाँ मैं अब तक क्या बदल दिया है का एक सारांश है , बदल दिया है:

<processModel autoConfig="true" /> 

रहे हैं:

<processModel autoConfig="true" responseDeadlockInterval="00:30:00" responseRestartDeadlockInterval="00:30:00" /> 

और Metabase.xml में: परिवर्तित:

AspMaxRequestEntityAllowed="204800" 

रहे हैं:

AspMaxRequestEntityAllowed="200000000" 

जब अपलोड विफल होता है, मैं आईआईएस से 404 त्रुटि मिली। मेरा वेब फॉर्म प्रसंस्करण शुरू नहीं करता है, या कम से कम, यह पेज_लोड ईवेंट में नहीं आता है। मैंने उस हैंडलर की शुरुआत में अपवाद फेंक दिया, और यह बड़ी फ़ाइलों पर निष्पादित नहीं होता है।

सब कुछ छोटी फ़ाइलों के साथ ठीक काम करता है (मैंने लगभग 5.5 एमबी तक परीक्षण किया है)। मुझे बिल्कुल यकीन नहीं है कि फ़ाइल का आकार सीमा क्या है, लेकिन मुझे पता है कि मेरी सीमा 150 एमबी से अधिक होने की जरूरत है, क्योंकि यह सबसे बड़ी फ़ाइल नहीं है जिसे क्लाइंट को अपलोड करने की आवश्यकता होगी।

क्या कोई मदद कर सकता है?

उत्तर

4

Urlscan सभी वेबसाइटों पर सक्रिय था, और यह के अपने अनुरोध इकाई लंबाई सीमा है। मुझे पता है कि Urlscan, हमारे सर्वर पर चल रहा था क्योंकि यह एक वैश्विक ISAPI फिल्टर था मेरे अलग-अलग वेबसाइट पर नहीं चल रहा था।

नोट: वैश्विक ISAPI फिल्टर लगाने के लिए, ठीक है, आईआईएस व्यवस्थापक में वेब साइटों फ़ोल्डर पर क्लिक करें और गुण क्लिक करें, फिर ISAPI फ़िल्टर टैब पर

2

जब हम इस मुद्दे को हम इस KB लेख के अनुसार बफर आकार सीमा को बढ़ाने के लिए किया था में भाग: http://support.microsoft.com/kb/944886/en-us

मैं यह उल्लेख है एएसपी पता है, लेकिन मेरा मानना ​​है कि यह ASP.NET के लिए के रूप में अच्छी तरह से काम किया।

संपादित करें:
http://weblogs.asp.net/jgalloway/archive/2008/01/08/large-file-uploads-in-asp-net.aspx

+0

पहला लेख डाउनलोड, नहीं अपलोड से संबंधित है, लेकिन मैं करने की कोशिश की वैसे भी, बिना किसी सफलता के। जॉन गैलोवे लेख में ऊपर वर्णित चीजों को शामिल किया गया है। –

+1

हाँ मैंने आपके प्रश्न को फिर से पढ़ लिया और महसूस किया कि मेरा पहला लिंक गलत था, लेकिन मुझे बस इसे बाहर निकालने के बारे में अजीब लगा। तो मैंने इसे थोड़ा और आगे देखा और दूसरा लिंक एक संपादन के रूप में पोस्ट किया। मुझे आशा है कि दूसरे लिंक में मदद मिलेगी। –

1

404 और लापता Page_Load: आईआईएस केवल अनुरोध पर कार्रवाई कर सकते हैं एक बार पूरा पोस्ट सर्वर पर है यह लिंक है जिसे आपकी समस्या के लिए अधिक प्रासंगिक हो सकता है और अन्य विकल्प प्रदान कर सकते हैं है। इसलिए, यदि POST विफल रहता है (इसके आकार के कारण), यह पृष्ठ की घटनाओं को आग नहीं लगा सकता है।

आप NeatUpload http://www.brettle.com/neatupload को आजमा सकते हैं। मैन्युअल से: "डिफ़ॉल्ट रूप से, NeatUpload सीधे अपलोड के आकार को सीमित नहीं करता है।"

0

तुम भी जो तथ्य यह है कि सहित NeatUpload पर कई फायदे हैं Velodoc XP Edition कोशिश कर सकते हैं। यह एएसपी.NET अजाक्स एक्सटेंशन का उपयोग करता है। अधिक जानकारी के लिए the Velodoc web site भी देखें।

0

आप कहते हैं:

लेकिन 1,536,000 केवल 1.5MB है?

+0

वह आकार किलोबाइट्स में है, इसलिए यह वास्तव में ~ 1.5 जीबी है। –

1

(Googler के लिए एक नोट):

IIS7 के लिए web.config के लिए नीचे जोड़ने (मैं <system.serviceModel> ऊपर जोड़ा):

<system.webServer> 
     <security> 
      <requestFiltering><requestLimits maxAllowedContentLength="262144000" /></requestFiltering> <!-- maxAllowedContentLength is in bytes. Defaults to 30,000,000 --> 
     </security> 
</system.webServer> 
संबंधित मुद्दे

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