عند استخدام Application_Start VS INIT في Global.asax؟
-
05-09-2019 - |
سؤال
أتساءل تحت أي ظروف يجب أن أضع رمز تهيئة التطبيق في 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 () مرة واحدة فقط أثناء بدء تشغيل الطريقة الأولى () في كل مرة يتم فيها إنشاء مثيل التطبيق.