2008-08-27 11 views
13

मेरे पास एक एएसपीनेट पृष्ठ होगा जो कुछ एक्सेल शीट बनाता है और उन्हें उपयोगकर्ता को भेजता है। समस्या यह है कि, कभी-कभी मुझे एचटीपी टाइमआउट मिलते हैं, संभवतः क्योंकि अनुरोध निष्पादन से अधिक समय तक चलता है टाइमआउट (डिफ़ॉल्ट रूप से 110 सेकंड)।एएसपीनेट निष्पादन सेट करें कोड/"रीफ्रेश" अनुरोध में समय

मुझे आश्चर्य है कि इसे रोकने के लिए मेरे विकल्प क्या हैं, आम तौर पर निष्पादन को बढ़ाने के बिना web.config में टाइमआउट?

PHP में, set_time_limit मौजूद है जिसका उपयोग किसी फ़ंक्शन में अपने जीवन को बढ़ाने के लिए किया जा सकता है, लेकिन मुझे सी #/एएसपीनेट में ऐसा कुछ नहीं दिखाई दिया?

आप ASP.net में लंबे समय से चलने वाले कार्यों को कैसे प्रबंधित करते हैं?

उत्तर

13

करना चाहते हैं होगा आप इस अनुरोध के लिए निष्पादन समय समाप्ति को बढ़ाने के लिए आप

HttpContext.Current.Server.ScriptTimeout

सेट कर सकते हैं चाहते हैं लेकिन आप अभी भी की समस्या हो सकती है क्लाइंट टाइमिंग जिसे आप सीधे सर्वर से सीधे हल नहीं कर सकते हैं। इसके आस-पास पहुंचने के लिए आप "प्रसंस्करण" पृष्ठ को लागू कर सकते हैं (जैसे रॉब सुझाव देता है) जो प्रतिक्रिया तैयार होने तक वापस पोस्ट करता है। या आप कुछ ऐसा करने के लिए AJAX में देखना चाह सकते हैं।

+1

यह एएसपी.नेट एमवीसी ऐप्स के लिए भी काम करता है - धन्यवाद! –

1

मुझे वास्तव में अभी तक इस मुद्दे का सामना करना पड़ेगा, इसलिए कृपया इसे ध्यान में रखें।

क्या वैसे भी आप प्रक्रिया एसिंक को चला सकते हैं और एक बार पूर्ण होने के लिए कॉलबैक विधि निर्दिष्ट नहीं कर सकते हैं, और फिर पृष्ठ को "हम आपके अनुरोध को संसाधित कर रहे हैं .." लूप चक्र में रखें। इसके बाद आप कुछ अच्छे यूआई एन्हांसमेंट्स को जोड़ने के लिए इसे खोल सकते हैं।

बस थोड़ी सी सोचकर जोर से सोचें। यही कारण है कि शायद बात की तरह मैं :)

+0

क्या आप कृपया इस विचार को विस्तृत कर सकते हैं, आप कॉलबैक विधि कैसे सेट करते हैं? –

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