كيفية تعيين إهتباسينشاندلر مهلة?
-
13-12-2019 - |
سؤال
لقد حاولت تعيين إكسكوتيونتيموت في شبكة الإنترنت.ملف التكوين:
<compilation debug="false" targetFramework="4.5">
<httpRuntime executionTimeout="30"/>
وبالنظر إلى صفحة طلبات مدير إيس أستطيع أن أرى لا يتم إنهاء الطلبات بعد 30 ثانية.
يجب أن تنفيذ جهاز توقيت داخل بلدي إهتباسينشاندلر?
المحلول
مع الافتقار الواضح إلى الدعم المدمج في مهلة IHTTPASyNchandler، من المفترض أن تدير مهلة الخاص بك. ربما هذا حسب التصميم؛ بعد كل ما تختاره نمط غير متزامن - من الذي تعتقد MSFT أنهم يحاولون تعيين مهلة افتراضية لمهمة التشغيل الطويلة؟
ما سأفعله هو استخدام ThreadPool.registerWorSingleObject < / a> لإدارة الاقتراع الخاص بك مع مهلة مناسبة. إليك نموذج التعليمات البرمجية الذي استخدمه لتجنب الانتظار على خدمة ويب لا تعاد أبدا:
giveacodicetagpre.أيضا، ستستدير مشكلات عندما يقرر IIS إعادة تدوير بركة التطبيق الخاصة بك / تمزيق نطاق التطبيق الخاص بك أثناء استطلاعاتك لا يزال قيد التشغيل. إذا كانت هذه الحالة التي تريد التعامل معها، فيمكنك استخدام hostingenvironment.registerobject .
نصائح أخرى
يمكنك محاولة إضافة هذا إلى web.config
ملف:
<system.web>
<pages asyncTimeout="30" />
</system.web>
لها ل PageAsyncTask
, ، ولكن فقط قد يكون تكريم ل IHttpAsyncHandler
أيضا?
إذا لم يكن الأمر كذلك ، فقد يكون لديك المزيد من الحظ مع الجديد HttpTaskAsyncHandler
في ASP.Net
4.5 الإصدار:http://www.asp.net/vnext/overview/whitepapers/whats-new#_Toc318097378
عليك استخدام RegisterasyNCTASK تحقق من الرابط أدناه