2011-01-21 19 views
11

मेरे पास वर्तमान में एक एएसपी.नेट एमवीसी प्रोजेक्ट है जिसमें फ़ाइल अपलोडिंग है और यदि उपयोगकर्ता के पास पर्याप्त कनेक्शन है और उनकी फ़ाइल उचित आकार का है तो यह बहुत अच्छा काम करता है।एएसपी.नेट एमवीसी अपलोड फ़ाइल समय

जिस समस्या में मैं दौड़ रहा हूं वह यह है कि कभी-कभी उपयोगकर्ता के पास 56k कनेक्शन हो सकता है (वे इस दिन और उम्र में कैसे रह सकते हैं, मुझे नहीं पता) या एक बड़ी फ़ाइल या कुछ संयोजन अपलोड कर रहे हैं दो।

मैं सामान्य पृष्ठों (90 सेकंड या उससे अधिक) के लिए एक छोटा टाइमआउट रखना चाहता हूं, लेकिन उपयोगकर्ता अपलोड करने वाले कार्यों के लिए एक बड़ा टाइमआउट की अनुमति देता हूं। यह केवल एक ही क्रिया है, इसलिए मुझे सामान्य समाधान की बजाय केवल एकवचन कार्रवाई के अंदर कोड डालने पर कोई फर्क नहीं पड़ता।

आखिरकार, एक समाधान जो स्वचालित रूप से टाइमआउट को बढ़ाएगा यदि Request.Files.Count> 0 सबसे अच्छा होगा।

+5

मैं डायल-अप पर हूं। मैं जमैका में रहता हूँ। –

+0

समय क्या है? यदि आपको 90 सेकंड या उसके बाद क्लाइंट से कुछ भी नहीं मिल रहा है, तो संभवतः आप कुछ भी सफलतापूर्वक अपलोड नहीं करेंगे। – chris

+0

मैं लगातार डेटा प्राप्त कर रहा हूं, क्रिस, लेकिन 56k से भी अधिक 10 मेग्स भेजना 90 सेकंड से अधिक लेगा। – ckknight

उत्तर

8

मुझे यकीन नहीं है कि यह एक एमवीसी प्रोजेक्ट में काम करेगा, लेकिन आप अपने web.config में कोई स्थान बनाने का प्रयास कर सकते हैं और केवल अपने अपलोड यूआरएल के लिए निष्पादन टाइमआउट सेट कर सकते हैं। उदाहरण के लिए:

<location path="YourUrl"> 
    <system.web> 
    <httpRuntime executionTimeout="9001"/> 
    </system.web> 
</location> 
+0

यह काम करता है। यदि आप अपलोड हैंडलर को केवल बड़े अनुरोधों को अनुमति देना चाहते हैं तो आप यहां अधिकतम रेक्वेस्ट लम्बाई भी जोड़ सकते हैं (httpRuntime टैग पर)। –

+2

उसका निष्पादन समय समाप्ति 9 000 से अधिक है! –

2

आप web.config में टाइमआउट को बढ़ाने के लिए आवश्यकता हो सकती है:

<httpRuntime executionTimeout="01:00:00" /> 

अब इस जिसका अर्थ है कि आप लिख सकता है अगर आप केवल अपलोड करने स्क्रिप्ट के लिए समय समाप्ति बढ़ाना चाहते हैं उप web.config फ़ाइलों में overridable है एक सामान्य HTTP हैंडलर जो अपलोड को संभाल लेगा और इसे अपने स्वयं के सबफ़ोल्डर में अपने वेब.कॉन्फिग के साथ रखेगा।

0

संभव मुद्दा: अपनी नहीं एक टाइमआउट क्योंकि शून्य गतिविधि की, शायद इसके कुछ आकार प्रतिबंध में बनाया के साथ, web.config httpRuntime अनुभाग में क्या करना है, तो आप जोड़ सकते हैं/करने के लिए maxRequestLength="" बढ़ सकते हैं आपकी आकार सीमा

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