আমি কীভাবে একটি asp.net এমভিসি অ্যাপ্লিকেশনটিতে একটি নিয়ামক পদক্ষেপের জন্য অনুরোধের সময়সীমা সেট করব


94

আমি আমার অ্যাপ্লিকেশনটিতে একটি নির্দিষ্ট নিয়ামক পদক্ষেপের জন্য অনুরোধের সময়সীমা বাড়াতে চাই। আমি জানি যে আমি পুরো অ্যাপ্লিকেশনটির জন্য এটি ওয়েবকনফাইগেই করতে পারি, তবে আমি এটি কেবল একটি ক্রিয়ায় এটি পরিবর্তন করব।

Web.config উদাহরণ:

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

আমি এটা কিভাবে করব?


উত্তর:


130

আপনি এই প্রোগ্রামিংটি নিয়ামকটিতে সেট করতে পারেন: -

HttpContext.Current.Server.ScriptTimeout = 300;

ডিফল্ট 110 সেকেন্ডের পরিবর্তে টাইমআউট 5 মিনিটে সেট করে (কী অদ্ভুত ডিফল্ট?)


31
অ্যাসিঙ্ক কনট্রোলারের আবির্ভাবের সাথে এটি মনে রাখা উচিত যে অ্যাসিঙ্ক্রোনাস অনুরোধগুলির জন্য অনুরূপ প্রভাব পেতে আপনার [অ্যাসিঙ্কটাইমআউট] সম্পত্তিটি ব্যবহার করা উচিত।
জেসন

6
এই উত্তরের সাথে আমার প্রশ্ন হ'ল এটি কীভাবে কেবলমাত্র একটি পদক্ষেপের ক্ষেত্রে প্রভাব ফেলবে? অনুরোধটি শেষ হওয়ার পরে কী সেটিংটি ভবিষ্যতের সমস্ত অনুরোধের জন্য ফিরে যেতে পারে?
ঝিলডেন

10
@ জিল্ডেন এইচটিপি কনটেক্সট প্রতিটি অনুরোধের ভিত্তিতে ইনস্ট্যান্ট করা হয়, সুতরাং এটি পরবর্তী অনুরোধের ডিফল্ট
মানটিতে

6
আপনি HttpContext যোগ করতে চান। বর্তমান ('বর্তমান' নিখোঁজ)
bboyle1234

4
আমি পেয়েছি: "HTTP কনটেক্সটে বর্তমানের সংজ্ঞা নেই"। আমি। নেট কোর 2.0 ব্যবহার করছি। কোন ধারনা কিভাবে এটা ঠিক করতে হবে?
তাদেজ

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

সম্ভবত নিয়ামকের পরিবর্তে ওয়েবকনফিগে এই জাতীয় মানগুলি সেট করা ভাল। কনফিগারযোগ্য বিকল্পগুলির হার্ডকোডিং ক্ষতিকারক হিসাবে বিবেচিত হয়।


15
-1 হার্ড কোডিং বিশেষ পরিস্থিতিতে যেমন ওপি বর্ণিত হয়েছে ঠিক আছে। মনে হচ্ছে কোনও নির্দিষ্ট ক্রিয়াকলাপের জন্য বাকী ক্রিয়াকলাপগুলির চেয়ে আলাদা টাইমআউট প্রয়োজন তাই ক্রিয়াটির অভ্যন্তরে কঠোর কোডিংটি কোনও ভাল জায়গার মতো মনে হয়।
লেভিটিকন

6
এক্সিকিউশনটাইমআউট এমভিসির পক্ষে কাজ করে না - এটি ভুল উত্তর। এখানে দেখুন: ফোরামস.এসপি.এন.পি
1715081

4
যদি ডিবাগ মোড এই সম্পন্ন উপেক্ষা করা হয় দয়া করে মনে রাখবেন msdn.microsoft.com/en-us/library/vstudio/... executionTimeout ঐচ্ছিক Int32 অ্যাট্রিবিউট। ASP.NET দ্বারা স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যাওয়ার আগে একটি অনুরোধ কার্যকর করতে অনুমোদিত সর্বাধিক সংখ্যাকে নির্দিষ্ট করে। সংকলনের উপাদানটিতে ডিবাগ বৈশিষ্ট্যটি মিথ্যা হলেই এই সময়সীমাটি প্রযোজ্য। সুতরাং, যদি ডিবাগ বৈশিষ্ট্যটি সত্য হয়, আপনি ডিবাগ করার সময় অ্যাপ্লিকেশন শাটডাউন এড়ানোর জন্য আপনাকে এই বৈশিষ্ট্যটিকে কোনও বড় মান হিসাবে সেট করতে হবে না।
নিক ভ্যান এস্ক

4
এটি সর্বাধিক সঠিক উত্তর নয়, কারণ এটি অন্যান্য অন্যান্য নিয়ামক ক্রিয়াকলাপের জন্যও এক্সিকিউশন টাইমআউট পরিবর্তন করার পার্শ্ব প্রতিক্রিয়া রাখে।
এরিক জে।

4
@ এরিকজে। শুধুমাত্র কন্ট্রোলার রুট (গুলি) দিয়ে শুরু মধ্যেControllerName\ActionName
GoldBishop

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.