سؤال

أتساءل تحت أي ظروف يجب أن أضع رمز تهيئة التطبيق في Application_Start() ضد Init() في Global.asax ملف؟

التمييز بين الاثنين لا يبدو واضحا جدا بالنسبة لي، بخلاف Application_start ودعا أولا، ثم Init().

  • لماذا أستخدم واحدة على الآخر؟
  • هل حقا تحدث فرقا؟
  • ما هي التغييرات في حالة التطبيق بين الحدثين؟

حتى الآن المؤشر الحقيقي الوحيد الذي يمكنني أن أجده هو ذلك IHttpModule فقط لديه an. Init() الطريقة، لذلك إذا كان ما أقوم به في مرحلة ما يكون مناسبا دائما لتنفيذ IHttpModule يجب أن تستخدم Init() طريقة Global.asax, ، إذا لم يكن هناك شيء آخر للاتساق.

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

المحلول

من مستندات MSDN.:

طرق application_start و Application_end أساليب خاصة لا تمثل أحداث httpapplication. asp.net. يدعوهم مرة واحدة في عمر مجال التطبيق، وليس لكل مثيل httpapplication.

فيه:

مسمى مرة واحدة لكل مثيل من httpapplication فئة بعد إنشاء جميع الوحدات.

تحديث: إذا كنت بحاجة إلى التأكد من أن رمز معين يسمى مرة واحدة فقط في التطبيق. دورة حياة، Application_start هو حلا أفضل. أمثلة: تكوين LOG4NET؟

نصائح أخرى

نعم

هناك اختلافات بينهما. يتم استدعاء الحدث Application_Start () مرة واحدة فقط أثناء بدء تشغيل الطريقة الأولى () في كل مرة يتم فيها إنشاء مثيل التطبيق.

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