سؤال

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

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

لكن أحد اللاعبين الأذكياء على جانب العميل أشار إلى أن تحرير الويب. إعادة تدوير تجمع التطبيقات ، وهذا هو الوقت المناسب هناك. لم ألاحظ أبدًا ، لكنني أفترض أن هذا صحيح - في حين أن تجمع التطبيقات غير متوفر ، فإن التطبيق "أسفل".

ولكن إلى متى؟ أنا لا أطلب منك الفرز من خلال مستوى الراحة للعميل مع فترات التوقف عن العمل ، ولكن هل هذا منظور شائع؟ أم لا ينبغي أن لا تقلق من أن تحرير الويب.

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

المحلول

يعيد IIS دورات تجمع التطبيق في حد ذاته بشكل طبيعي ، وإذا كانت هذه التدوير لا تسبب لك القلق ، فلا ينبغي أن يكون هذا أيضًا.

يجب ألا يتلقى المستخدم أي نوع من الأخطاء "غير متوفرة" ، AFAIK.

نصائح أخرى

قال الجميع حتى الآن صحيح.

ومع ذلك ، هناك طريقة لتجنب هذا التوقف ، طالما أن قيمك التي تسحبها ليست مخزنة مؤقتًا.

يمكنك تنفيذ جزء من ملف .Config إلى ملف آخر ، لن يعيد إعادة تسجيل تجمع التطبيق.

سيبدو شيئًا كهذا في ملف web.config:

<appSettings file="moresettings.config"></appSettings>

ثم يبدو ملفك الخارجي هكذا:

<?xml version="1.0" encoding="utf-8" ?>
<appSettings>   
<add key="SOMEKEY" value="MYVALUE"/>
</appSettings>

إذا كنت تشعر بالقلق على الإطلاق مع التوقف ، وهذا يحدث كثيرًا ، فسأفكر في نقل هذه الإعدادات إلى قاعدة البيانات.

ومع ذلك ، فإن التوقف في قضيتك سيكون ضئيلاً. يتم إعادة تدوير تجمع التطبيقات عند حفظ ملف web.config ، ونتحدث عن ميلي ثانية.

كما قيل ، فإن IIS تقوم بالفعل بإعادة تدوير تجمع التطبيقات. هذا ليس سيئًا مثل القيام بمجموعة IISReset كاملة - يجب ألا يحصل المستخدمون على "الخدمة غير متوفرة". خطأ نظرًا لأن خادم الويب لا يزال متصلاً بالإنترنت ويقدم عمليات Qusts - يجب أن تنتظر فقط لإعادة تشغيل AppPool ، مما يعني أن وقت الاستجابة للمستخدمين الذين يصلون في هذه اللحظة مرتفع للغاية. قد تكون هذه مشكلة بالطبع إذا كان لديك موقع ويب عام وقمت بإبعاد الزوار.

الآثار الجانبية الأخرى لإعادة تدوير APPPOOL هي نفسها مثل IISRESET: إنها تغسل ذاكرة التخزين المؤقت للجلسة inproc إذا لم أكن مخطئًا ، وتنفذ حدث Application_start.

لذلك على الرغم من أنها غير ضارة نسبيًا ، إلا أنني ما زلت أعاملها على أنها توقف.

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