2009-02-23 12 views
74

में एक नियंत्रक कार्रवाई के लिए अनुरोध टाइमआउट कैसे सेट करूं, मैं अपने आवेदन में एक विशिष्ट नियंत्रक कार्रवाई के लिए अनुरोध टाइमआउट को बढ़ाना चाहता हूं। मुझे पता है कि मैं इसे पूरे एप्लिकेशन के लिए web.config में कर सकता हूं, लेकिन मैं इसे सिर्फ एक ही क्रिया पर बदल दूंगा।मैं एएसपीनेट एमवीसी एप्लिकेशन

Web.config उदाहरण:

<system.web> 
    <httpRuntime executionTimeout="1000" /> 
</system.web> 

मैं इसे कैसे करते हैं?

+0

संभव डुप्लिकेट http://stackoverflow.com/questions/492346/asp-net -एमवीसी-एंड-प्रेजेंटप्रिंटिम-निष्पादनटाइमआउट) – balexandre

+0

@ बालेक्सेंड्रे नोप। – AgentFire

उत्तर

100

आप नियंत्रक में प्रोग्राम के रूप में इस सेट कर सकते हैं: -

HttpContext.Current.Server.ScriptTimeout = 300; 

बजाय डिफ़ॉल्ट 110 सेकंड के 5 मिनट के लिए समय समाप्ति सेट

+26

AsyncController के आगमन के साथ यह याद रखना महत्वपूर्ण है कि एसिंक्रोनस अनुरोधों के लिए समान प्रभाव प्राप्त करने के लिए आपको [AsyncTimeout] संपत्ति का उपयोग करना चाहिए। – Jason

+6

इस उत्तर के साथ मेरा प्रश्न यह है कि यह वास्तव में केवल उस क्रिया को कैसे प्रभावित करेगा जिसमें इसे रखा गया था? तो अनुरोध करने के बाद क्या यह सेटिंग सभी भावी अनुरोधों के लिए वापस आती है? – jhilden

+7

@jhilden HttpContext प्रति अनुरोध आधार पर तत्काल है, इसलिए यह अगले अनुरोध पर डिफ़ॉल्ट मान पर वापस आ जाएगा – reddy

49
<location path="ControllerName/ActionName"> 
    <system.web> 
     <httpRuntime executionTimeout="1000"/> 
    </system.web> 
</location> 

शायद यह है (क्या एक अजीब डिफ़ॉल्ट?) नियंत्रक के बजाय web.config में ऐसे मान सेट करने के लिए बेहतर है। कॉन्फ़िगर करने योग्य विकल्पों की हार्डकोडिंग को हानिकारक माना जाता है।

+9

-1 ओपी वर्णित विशेष परिस्थितियों के लिए हार्ड कोडिंग ठीक है। ऐसा लगता है कि एक विशिष्ट कार्रवाई के बाकी कार्यों की तुलना में एक अलग टाइमआउट की आवश्यकता होती है ताकि कार्रवाई के अंदर हार्ड कोडिंग एक अच्छी जगह की तरह लगती है। – Levitikon

+10

फिर भी यह अभी भी सबसे सही उत्तर है ... – Eric

+4

निष्पादन टाइमआउट एमवीसी के लिए काम नहीं करता है - यह गलत जवाब है। यहां देखें: http://forums.asp.net/p/1715081/4723882.aspx?Re+web+config+executionTimeout+not+working+in+ASP+NET+MVC – jfren484

16

मैं जोड़ने के लिए किया था "वर्तमान" का उपयोग कर .NET 4.5:

HttpContext.Current.Server.ScriptTimeout = 300; 
[ASP.NET MVC और httpRuntime executionTimeout] (की