سؤال

لدينا أحد التطبيقات التي يمكن أن تخلق الكتب الإلكترونية. هذا التطبيق يحتوي على وحدة التصدير التي بإنشاء ملف AIR لكن هذا يمكن أن يستغرق بعض الوقت (بعض الكتب لها 2500 صفحة). إذا نحن تصدير نحصل على الخطأ التالي:

Thread was being aborted. 
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.Threading.ThreadAbortException: Thread was being aborted.

Source Error: 
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below. 

Stack Trace: 

[ThreadAbortException: Thread was being aborted.]
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +501
   System.Web.ApplicationStepManager.ResumeSteps(Exception error) +564
   System.Web.HttpApplication.System.Web.IHttpAsyncHandler.BeginProcessRequest(HttpContext context, AsyncCallback cb, Object extraData) +141
   System.Web.HttpRuntime.ProcessRequestInternal(HttpWorkerRequest wr) +436

ولقد غيرت بلدي وقت executiontimeout إلى 3600 ثانية ولكنه يبقي تحطمها: حول 3 دقائق. لذلك يرتبط الوقت ... كل مرة ونحن نقترب من 3 دقائق فإنه تعطل، وآمل شخص يستطيع مساعدتي.

هل كانت مفيدة؟

المحلول

وأعتقد أن بول هو الصحيح عن سبب استثناء. كلا IIS و ASP.NET لديها إعدادات التي تحد أكبر قدر ممكن من الوقت طلب يمكن أن تتخذ. لASP.NET انها في الملف Machine.config (ابحث عن العنصر httpRuntime، السمة executionTimeout). تم ضبطه على 90 ثانية على آلة تطوري.

وأود أن ذلك لا ننصح لتغيير هذا الإعداد كما انها هناك للتأكد من التطبيق الخاص بك لا تعليق على طلب سيئة.

يجب

والمهام المستمرة منذ فترة طويلة استخدام التنفيذ غير متزامن. مع التنفيذ المتزامن، يتم التعامل مع العمل الفعلي في موضوع مستقل. وهذا يحرر مؤشر الترابط الذي يعالج الطلب للتعامل مع طلبات أخرى وهو أمر جيد لمجمل أداء التطبيق الخاص بك.

وهناك بعض المواد الجيدة في هذا المتاحة. على سبيل المثال: http://msdn.microsoft.com/en-us/magazine /cc163725.aspx

نصائح أخرى

وفي كثير من الأحيان، وهذا خطأ يحدث في الواقع من استثناء OutOfMemory. هناك InnerException المتاحة؟

وIIS لديه "تشغيل بعيدا" الحماية موضوع من شأنها أن تقتل موضوع / appdomain إذا كان يعمل لفترة طويلة جدا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top