-
Session Timeout troubleshout -- בעיית תקשורת
תקלה :
קיימת בעיית תקשורת. נא לפנות למנהל מערכת.
הסבר התקלה :
לאחר זמן קצר נופלת האפליקציה עם הודעה זו .
הנפילה קוראת בגלל איבוד SESSION של פרמטרים הנבדקים בדף בזמן העלאה .
פתרונות אפשריים :
לבדוק זמן SESSIONTIMEOUT במקומות הבאים :
-- ב IIS נכנס ל APPLICATION POOL ל PROPERTIES לטאב של PERFORMANCE
לשים לב להגדרת IDLE TIMEOUT . אמור להיות 20 דקות .(במקרה שהוא נמוך כל האפליקציות תחת אותו POOL יאבדו SESSION לפי הגדרתו)
-- ב IIS נכנסים ל DEFAULT WEB SITE לפרויקט שלך , ל VIRTUAL DIRECTORY שלו ל PROPERTIES לטאב ASP.NET ל EDIT CONFIGURATION לטאב STATE MANAGEMENT ולשים לב ש SESSION TIMEOUT יוגדר ל 20 דקות . (במקרה שב WEB.CONFIG של הפרויקט יוגדר זמן יותר ארוך עדיין ילך לפי ההגדרה הגלובלית )
יש לשים לב שההגדרות יכולות להיות שונות פר כל VIRTUAL DIRECTORY ב IIS.
ב WEB.CONFIG של הפרויקט –
הגדרת sessionState
מאפשר להגדיר אורך חיים של SESSION באפליקציה
<sessionState mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes" cookieless="false" timeout="4000" />
לפי הניסיון שלנו לקח את ההגדרה של IIS לפי ה VIRTUAL DIRECTORY של הפרויקט (20 דקות , למרות שמוגדר 4000, יכול להיות מקסימום אפשרי שמעליו מתעלמים מהפרמטר בקובץ קונפיגורציה. )
הגדרת outputCacheProfiles
מאפשר להגדיר פרמטרים גלובליים לכל האפליקציה של outputcache
<%@ outputcache duration="12000" VaryByParam="*" %>
מגדירים בקונפיגורציה -
<caching>
<outputCacheSettings>
<outputCacheProfiles>
<add name="DurationProfileGeneral" duration="1200" varyByParam="*" />
outputCacheProfiles>
outputCacheSettings>
caching>
משתמשים בדף –
<%@ outputcache CacheProfile="DurationProfileGeneral" %>
בעיה שנוצרה -
בכל דף WEB י של המערכת יש פניה לבדיקת SESSION ב PAGE_ONLOAD אשר בודקת הימצאותם של כניסות של פרמטרים ב SESSION .
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If fCheckSessionTimeOut() Then Exit Sub
…
…
…
End Sub
במקרה של DURATION=1200 האפליקציה נכנסת לדף בפעם הראשונה ובודקת את המצאות ה SESSION , מוצאת אותו תקין ומכניסה את הדף ל CACHING ל 20 דקות , לפי החשבון של 1200שניות \ 60 שניות = 20 דקות .
ניתן לראות את ה EXPIRATION של הדף ע"י כניסה ל TOOLS ל INTERNET OPTIONS בטאב GENERAL ב BROWSING HISTORY נכנסים ל SETTINGS ל VIEW FILES ושם נמצאים הקבצים השמורים .
הסבר : במשך 20 דקות הבאות , לפי הגדרת DURATION במקרה של הפעלת הדף ע"י REFRESH לא יתבצע חידוש הדף אלא הוא יובא מה TEMPORARY FILES של INTERNET .
במשך 20 דקות הוא לא יבצע PAGE_ONLOAD ולא יבדוק נוכחות של פרמטרים ב SESSION .
לאחר 20 דקות תתבצע העלאה מחודשת של הדף ויבדקו הנתונים .
0 comments: