I went to GTSC for an interview yesterday, and the interviewer asked me how to check after the session is lost. To be honest, I have rarely encountered such a situation during development so far. The only thing I thought of was session timeout, and doing session reading and writing logs. I found that the interviewer was not very satisfied after hearing this, sweat!
In any case, it is a good opportunity to learn. I took the time today to check the methods of dealing with these problems on the Internet and summarize them. I hope it will be helpful to everyone.
By the way, the working principle of Session in asp:
asp’s Session is process dependent. The ASP Session state is stored in the IIS process, which is the inetinfo.exe program. So when the inetinfo.exe process crashes, this information is lost. In addition, restarting or closing the IIS service will cause information loss.
Implementation of asp.net Session
asp.net’s Session is based on HttpModule technology. HttpModule can control the status of the request before the request is processed. Since the Session itself is used for state maintenance, it is perfect to use HttpModule as the Session. .
Reason 1:
The files in the bin directory are rewritten. ASP.NET has a mechanism. In order to ensure that the system runs normally after the dll is recompiled, it will restart the website process. This will cause the Session to be lost, so if there is an access database Located in the bin directory, or if other files are overwritten by the system, the session will be lost
Reason 2:
In the folder options, if "Open folder window in a separate process" is not turned on, once a new window is created, the system may think it is a new Session and cannot access the original Session, so this option needs to be turned on. Otherwise, the session will be lost
Reference configuration:
http://jingyan.baidu.com/article/22fe7ced78594f3002617f04.html
Reason 3:
It seems that most of the session losses are caused by the client, so start from the client and see if the cookie is turned on
Reason 4:
Is there something wrong with the time setting of the Session? Will it be lost due to timeout?
Reason 5:
The limit on the number of cookies in IE (20 cookies per domain) may cause session loss
Reason 6:
Use web garden mode, and use InProc mode as a way to save sessions
Resolving lost experience
1. To determine whether it is caused by reason 1, you can track the modification time of a file in the bin every time you refresh the page
2. Make session reading and writing logs. Each time reading and writing a session must be recorded, and the SessionID, session value, page, current function, and the number
in the function must be recorded.A few session operations will make it much easier to find the cause of loss
3. If allowed, it is recommended to use state server or sql server to save the session, so that it is not easy to lose
4. Add code to global.asa to record the creation time and end time of the Session. Session loss caused by timeout can be recorded in SessionEnd.
5. If client scripts are used in some codes, such as javascript to maintain session status, you should try to debug the script to see if the session is lost due to script errors
The above content is the several reasons for session failure shared by the editor of Bangkejia. I hope it will be helpful to everyone.