سؤال

أنا أستخدم ASP.NET4 MVC2 لتطبيقي. عادةً ما يختبر الشخص الأول الذي يستخدم التطبيق انتظارًا طويلًا قبل أن يستجيب التطبيق. بعد ذلك ، يكون التطبيق متجاوبًا جدًا. إذا كان التطبيق في وضع الخمول لمدة 15 دقيقة ، فسيواجه الشخص نفسه أو الشخص التالي الذي يستخدم التطبيق الانتظار لفترة طويلة مرة أخرى. يبدو أن التطبيق يجمع بعد الخمول لمدة 15 دقيقة. هل يمكن لأحد أن يخبرني أين يجب أن أتطلع إلى مشكلة في إطلاق النار على المشكلة؟ شكرًا.

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

المحلول

من شبه المؤكد أن ما تواجهه هو إعادة تدوير تجمع التطبيق. صحيح أن الأمر يستغرق بعض الوقت لإعادة تخصيصها بعد إعادة تدوير المسبح ، لكن لا ينبغي أن يستغرق الأمر كل هذا الوقت الطويل. ما هي مدة "الانتظار الطويل"؟ ثانية؟ العديد من؟ في IIS ، يمكنك تكوين كيفية إعادة تدوير تجمع التطبيقات بانتظام. بالنسبة إلى IIS 7 ، انقر بزر الماوس الأيمن على تجمع التطبيق الخاص بك واختر "الإعدادات المتقدمة" ثم انظر إلى "Idle Time-Out". قد تفكر في زيادة هذه القيمة. (أو ضبط على 0 لتعطيل تماما.)

نصائح أخرى

تحتاج إلى تشخيص المشكلة بدقة أولاً قبل بدء حلول التنفيذ. أولا يجب أن تحقق إذا كان ، في الواقع ، إعادة تدوير تجمع التطبيقات. يمكنك البدء بإضافة هذا القسم إلى web.config:

<healthMonitoring>
      <rules>
        <add name="Application Lifetime Events Default"
             eventName="Application Lifetime Events"
             provider="EventLogProvider"
             profile="Default"
             minInstances="1"
             maxLimit="Infinite"
             minInterval="00:01:00"
             custom="" />
      </rules>
</healthMonitoring>

سيقوم بتسجيل حدث إلى سجل أحداث Windows في أي وقت إعادة تدوير ASP.NET نفسه. سوف يعطي أيضا السبب لإعادة التدوير (على سبيل المثال ، شخص ما مطحون web.config ، وما إلى ذلك). لو أنه هو إعادة التدوير ، ثم تحتاج إلى معرفة ذلك لماذا إنه إعادة التدوير. هل هذا لأنه تم تعيين IIS للقيام بذلك مهما كان الأمر؟ هل لأن تطبيقك لا يتعامل مع الذاكرة بشكل صحيح وضغط الذاكرة يتسبب في أن ASP.NET ترغب في إعادة تدوير نفسها؟ يجب الإجابة على هذه الأسئلة أولاً.

حدد أولاً ما إذا كانت إعادة التدوير عن طريق الإضافة إلى التكوين أعلاه ولماذا. بمجرد الحصول على الإجابة ، يمكنك التحقق من الذاكرة ، إلخ.

إلقاء نظرة على امتداد IIS7 للتسخين.

http://www.iis.net/download/applicationwarmup

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