PDA

View Full Version : سوال: زمان اجرای رویدادهای Global.asax



kardo.software
دوشنبه 23 آذر 1388, 17:34 عصر
سلام کسی میتونه دقیقاً بگه که رخداد های زیر کی fire میشن؟
Application_Start
Application_End
Session_Start
Session_End
یا بهتر بگم Application و Session دقیقاً کی شروع و کی تموم میشن؟
ممنون.

Mostafa_Dindar
دوشنبه 23 آذر 1388, 18:06 عصر
خودش گفته كه !!!!

void Application_Start(object sender, EventArgs e)
{
// Code that runs on application startup

}

void Application_End(object sender, EventArgs e)
{
// Code that runs on application shutdown

}
void Session_Start(object sender, EventArgs e)
{
// Code that runs when a new session is started

}

void Session_End(object sender, EventArgs e)
{
// Code that runs when a session ends.
// Note: The Session_End event is raised only when the sessionstate mode
// is set to InProc in the Web.config file. If session mode is set to StateServer
// or SQLServer, the event is not raised.

}

kardo.software
چهارشنبه 25 آذر 1388, 17:46 عصر
سلام
درسته ولی منظورم اینه که application کی startup میشه؟ و کی shutdown میشه؟ و همچنین Session.

A.Yousefi
یک شنبه 03 مهر 1390, 21:41 عصر
سلام
درسته ولی منظورم اینه که application کی startup میشه؟ و کی shutdown میشه؟ و همچنین Session.


ببخشید میشه یکی جواب این بنده خدارو بده،سوال منم هست

sanay_esh
یک شنبه 03 مهر 1390, 22:47 عصر
موقعی که یک کاربر به سایت مراجعه میکنه همزمان با ورود Application استارت میشه
در صورتی که Session هم داشته باشه در همان لحظه استارت میشه
بعد از مدت معین شده برای جلسه ، Session از کار میافته و همچنین در صورتی که کاربر login شده خارج بشه session خاتمه می یابد
ولی همچنان Application هنوز در حالت اجرا میباشد
در بعضی موارد بعلت برنامه نویسی نادرست در سایت مانند تغییرات بی مورد در فایل های سیستمی از قبیل web.config بعد از اعمال تغییر Application دوباره راه اندازی میشه
یعنی shutdown و بعد start میشه همین !!!


بهتر از همه اینها میتونی یک Break point بذاری و برنامه رو اجرا کنی و ببینی که چه بلایی سر اینها میاد؟؟؟؟!!!!!

A.Yousefi
یک شنبه 03 مهر 1390, 23:13 عصر
موقعی که یک کاربر به سایت مراجعه میکنه همزمان با ورود Application استارت میشه !
مگه application ها به ازای کل کاربرا نیستن؟
مثلا application_start زمانی اتفاق میافته که سایت رو برای اولین بار تو سرور بالا میاریم یا application_end وقتی اپلیکیشن down میشه اجرا میشه،حالا میخوام بدونم کاربردشون فقط همینجاست؟ lمثلا application_start بجز موقع بالا اومدن اولین بار سایت دیگه چه موقع هایی اجرا میشه؟
و اینکه چه موقع هایی ممکنه اپلیکیشن down بشه؟

A.Yousefi
دوشنبه 04 مهر 1390, 16:43 عصر
به خدا این سوال سوال خیلی های دیگه هم هستا!

A.Yousefi
دوشنبه 04 مهر 1390, 21:44 عصر
من کلی سرچ انجام دادم ولی هنوز کار این رویدادهارو نفهمیدم چین،یه جا یکی گفته:
Application_Start : در زمان آغاز به كار برنامه و دريافت اولين درخواست توسط هر يك از كاربران ، محقق می گردد . رويداد فوق در پاسخ به درخواست های بعدی محقق نخواهد شد . از اين رويداد معمولا" برای ايجاد و ياcache برخی اطلاعات اوليه استفاده می شود.
ولی تو خود فایل global.asax تو کامنت این رویداد گفته:

// Code that runs on application startup
بالاخره کدومشه،یعنی وقتی برای اولین بار سایت ما بالا میاد رو سرور فقط این application_start آغاز میشه یا نه هر بار که کاربرا سایتو میبینن هم اجرا میشه؟
بقیه رویداد ها ش مثله
Application_End

Application_Error
کارشون چیه؟
تو رو خدا راهنمایی کنید:ناراحت:

A.S.Roma
سه شنبه 05 مهر 1390, 09:52 صبح
زمانی که اولین Request به سرور ASP.NET میاد Application_Start فایر میشه و تا زمانی که به هر دلیل Stop‌نشه این ایونت فایر نمیشه .
Application_END هم قراره وقتی برنامه Stop‌شد فایر بشه که معمولا" عملکرد درستی نداره و فایر نمیشه !

به ازای هر کاربر ( هر SessionId ) سرور ASP.NET‌در حافظه یک فضایی رو به نام Session اختصاص میده . ایونت Session_Start‌زمانی فایر میشه که یک درخواست از یک SessionId جدید آمده باشد.
Session_end هم قراره زمانی که session‌تایم اوت شد فایر بشه که اونم همیشه اجرا نمیشه !

Application_Error‌هم زمانی که کدهای برنامه باعث ایجاد Exception بشن و شما اونا رو Handle‌نکنید (try - catch) این ایونت فایر میشه.

khz-web1
سه شنبه 05 مهر 1390, 12:45 عصر
Session_end هم قراره زمانی که session‌تایم اوت شد فایر بشه که اونم همیشه اجرا نمیشه !

سلام

میشه بگید چرا همیشه اجرا نمیشه ؟
با تایم اوت شدن یا حالا هر متدی که اونو ببنده اجرا میشه!!!!!
با تشکر

A.S.Roma
سه شنبه 05 مهر 1390, 13:01 عصر
والا قراره اجرا بشه . اینکه چرا بعضی وقتا نمیشه رو باید از مایکروسافت پرسید .

اگر همیشه اجرا بشه منم یه عمر دعاش می کنم :D

تجربه ثابت کرده که خیلی دقیق نیست.
»» تو همین سایت هم یک بار بحث شد و یادمه آقای راد هم به این نتیجه رسیده بودن که این ایونت همیشه فایر نمیشه .

Saman Hashemi
سه شنبه 05 مهر 1390, 13:41 عصر
session_end با عمر session کار میکنه تا جایی که من استفاده کردم fire میشه و مشکلی هم نداشتم حالا شاید مورد شما استثنا بوده...!

Web.Designer01
سه شنبه 05 مهر 1390, 22:01 عصر
زمانی که اولین Request به سرور ASP.NET میاد Application_Start فایر میشه و تا زمانی که به هر دلیل Stop‌نشه این ایونت فایر نمیشه .
.
پس یعنی اون ابتدا که کاربر سایت رو باز میکنه هم session_start و هم application_start فایر میشن؟

Saman Hashemi
چهارشنبه 06 مهر 1390, 09:29 صبح
پس یعنی اون ابتدا که کاربر سایت رو باز میکنه هم session_start و هم application_start فایر میشن؟
آره هر دو اجرا میشن البته برای اولین باری که سایت توسط کاربری باز شود بعد از اون فقط session_start اجرا میشه...!

A.S.Roma
چهارشنبه 06 مهر 1390, 14:46 عصر
پس یعنی اون ابتدا که کاربر سایت رو باز میکنه هم session_start و هم application_start فایر میشن؟
زمانی که اولین نفر وارد سایت میشه Application_Start‌فایر میشه.
فرقش با Session_Start‌اینکه Session_Start به ازای ورود هر کاربر اجرا میشه اما App_Start به ازای تمامی کاربران یک بار

Web.Designer01
چهارشنبه 06 مهر 1390, 19:12 عصر
پس یعنی اون ابتدا که کاربر سایت رو باز میکنه هم session_start و هم application_start فایر میشن؟


آره هر دو اجرا میشن البته برای اولین باری که سایت توسط کاربری باز شود بعد از اون فقط session_start اجرا میشه...!
پس application_start فقط یه بار اجرا میشه دیگه؟
اونم فقط برای اولین بار که سایتمون میاد بالا توسط اولین بازدید کننده بعد از اون دیگه اجرا نمیشه تا زمانی که application_end اتفاق بیفته،حالا باز برگردیم به سوال A.Yousefi !
application_end در اثر بروز چه اتفاقایی رخ میده؟
و اینکه تو application_start و application_end معمولا چه کدایی مینویسن؟

A.S.Roma
چهارشنبه 06 مهر 1390, 19:25 عصر
پس application_start فقط یه بار اجرا میشه دیگه؟
اونم فقط برای اولین بار که سایتمون میاد بالا توسط اولین بازدید کننده بعد از اون دیگه اجرا نمیشه تا زمانی که application_end اتفاق بیفته،حالا باز برگردیم به سوال A.Yousefi !
application_end در اثر بروز چه اتفاقایی رخ میده؟
و اینکه تو application_start و application_end معمولا چه کدایی مینویسن؟

امیدوارم مفید باشه .
به نقل از کتاب ASP.NET 4 انتشارات Wrox

Web.Designer01
چهارشنبه 06 مهر 1390, 19:59 عصر
ممنون فرق app_start رو session_start دقیقا گفته ولی نگفتین تو این eventها معمولا باید چه کدایی بنویسیم و اینکه app_end معمولا در اثر چه ااتفاقاتی فایر میشه؟

Web.Designer01
دوشنبه 11 مهر 1390, 23:22 عصر
حالا که این بحث مطرح شده اگه به این سوال منم جواب بدین ممنون میشم... :لبخندساده: