Tips and Tricks in a world of Mix

תקלה :

קיימת בעיית תקשורת. נא לפנות למנהל מערכת.



הסבר התקלה :

לאחר זמן קצר נופלת האפליקציה עם הודעה זו .

הנפילה קוראת בגלל איבוד 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

מגדירים בקונפיגורציה

<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 דקות תתבצע העלאה מחודשת של הדף ויבדקו הנתונים .

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Tag Cloud

%d bloggers like this: