581
צפיות
צפיות
5
תשובות
תשובות
sub Session_OnEnd
שלום
פעם ראשונה אני שואל כאן מקווה שאני במקום הנכון.
רציתי לדעת אם מישהו אולי מכיר את הבעיה ב_ASP והיא
ה_sub Session_OnEnd לא מגיב לי למה?
תודה מראש על כל עזרה.
שלום
פעם ראשונה אני שואל כאן מקווה שאני במקום הנכון.
רציתי לדעת אם מישהו אולי מכיר את הבעיה ב_ASP והיא
ה_sub Session_OnEnd לא מגיב לי למה?
תודה מראש על כל עזרה.
5 תשובות
ממש אי אפשר לענות על זה…
לא בלי קוד רלוונטי…
הנה הקוד
שלום זהר
תודה על התגובה המהירה שלך.
<script language="vbscript" runat="server">
Sub Application_OnStart
Application("Total_Users") = 0
End Sub
Sub Application_OnEnd
End Sub
Sub Session_OnStart
Application.lock
Application("Total_Users") = Application("Total_Users") + 1
Application.unlock
End Sub
sub Session_OnEnd
Application.lock
Application("Total_Users") = Application("Total_Users") – 1
Application.unlock
End Sub
</SCRIPT>
ה_Session_OnEnd אצלי לא מגיב שיוצאים מהאתר.
שוב תודה .
נ.ב מקווה שהסברתי טוב את שאלתי.
GLOBAL.ASA אתה צריך להכניס בתור
אתה צריך להכניס בתור קובץ שקוראים לו GLOBAL.ASP את הקוד שרשמת למעלה.. זה הקובץ הראשון שעולה כאשר פותחים את השרת…
אתה צריך גם לבדוק אם השרת שלך תומך בזה.
global.asp
תודה על התגובה.
1. יש לי שרת ביתי ISS.
2. כמובן שהכנסתי כל הקוד לתוך קובץ ה_global.asp.
3. מה שמעניין שה_ Sub Session_OnStart מגיב מצויין.
ורק שה_Sub Session_OnEnd
לא מגיב בכלל וזאת הבעיה כאן.
Session_onEnd קורה בסוף ה Session.
ה Session לא מסתיים כאשר הגולש סוגר את הדפדפן.
למעשה, השרת בכלל לא יודע מתי הדפדפן נסגר.
המנגנון שמפעיל את ה Session עובד בצורה הבאה:
משתמש שולח בקשה לדף asp מהשרת.
השרת בודק האם יש למשתמש הזה עוגיה עם SessionId. אם לא, הוא שותל אחת. ברגע זה מתחיל Session עם המשתמש הזה. אם יש לו עוגיה עם SessionId, השרת יודע לאיזה Session שייך הגולש הזה לפי ה sessionId שמוחזק בעוגיה הזו.
כמובן שהעוגיות האלו לא מחזיקות גם תאריך תפוגה, ככה שהן נמחקות ברגע שנסגר הדפדפן.
הזמן שמוגדר ל Session להמשך הוא הזמן שהגדיר המתכנת ב Session.timeout. אם לא הוגדר Session.timeout, ברירת המחדל היא לפי הקינפוג של השרת – וברירת המחדל של iis היא 20 דקות.
בכל בקשה של המשתמש מהשרת מתאפס המונה שסופר את הזמן שנשאר ל Session לחיות. במידה והמונה הזה מגיע ל Session.timeout, ה Session מסתיים ורק אז מתבצע הארוע ב Session_onEnd.
ככה שבעצם, ה Session מסתיים אצלך רק 20 דקות אחרי הבקשה האחרונה מהדפדפן. אם אתה רוצה לשנות את זה, אתה צריך לקנפג את ה iis או להשתמש בפקודה Session.timeout ולהגדיר זמן אחר (בדקות).
בהצלחה!