Source: http://blog.csdn.net/cityhunter172/article/details/727743
Take the time to speak today. Storage mode in. Net v1.0/v1.1. You can search for < sessionstate > in MSDN 2003 to see a description of the < sessionstate > node elements in Web.config, a total of off, InProc, StateServer, S Qlserver four different modes. Off, InProc respectively refers to "not enabled", "in-process storage (default)", the two modes are not said, the so-called InProc is to save the session in aspnet_wp.exe (Windows 2000 parsing ASP. NET page (process) or w3wp.exe (Win2003 process), the session will be lost once the process is aborted or reset.
One, causes the session to lose several reasons
People who have moved the handwriting code know that session loss is more common. The following is my several years encountered, can cause the session lost reason, dare not say is hundred percent, the probability of loss is particularly high. Wrong ..., can be said to be "phase ... When ... "High wow ^_^"
1, storage session of the computer restart (nonsense, if this is not lost, you immortal AH)
2. InProc mode: aspnet_wp.exe or w3wp.exe causes its process to be aborted in Task Manager or otherwise.
3, InProc mode: After the modification of the. cs file, compiled two times (compile only once, sometimes not lost)
4, InProc mode: Modified Web.config
5, InProc mode, Windows 2003 Environment: Application pool recycle, reboot after stop
6. InProc mode: the. dll file in the bin directory on the server is updated
All of the above are listed in the InProc mode, easy to cause resolution asp.net application reset. Don't feel very wohuo. I have this feeling before, slowly get used to it, and then simply do not use this mode. As a then, there is an attempt to use the following two patterns, which are written to share with you.
second, use StateServer to save session
The essence of the StateServer model is to store the session in a separate process, which is independent of aspnet_wp.exe or w3wp.exe. After you enable this service, you can see a process named Aspnet_state.exe in Task Manager, starting with the specific steps for setting:
1, modify the registry (key steps, as shown below)
Run regedit→ open registry → Find Hkey_local_machine/system/currentcontrolset/services/aspnet_state/parameters Node → Set the key value of Allowremoteconnection to "1" (1 is allowed, 0 is forbidden) → Set port (port number)
Precautions:
A), if the ASP.net state service is running and the registry content is modified, the service needs to be restarted
(b) Note that the key value of the port number is stored in hexadecimal and can be modified using decimal, 42424 is the default port
C, the Allowremoteconnection key value is set to "1", meaning that the remote computer connection is allowed, that is, as long as you know your service port, you can enjoy your ASP.net state service, that is, the session stored in your computer process, So please use caution; When the key value is "0", only the case where the stateconnectionstring is "tcpip=localhost:42424" and "tcpip=127.0.0.1:42424" can be used before the ASP.net state Service
2, open asp.net state Service (pictured below)
Right-click "My Computer" → admin → service and application → service → Double-click "asp.net state Service" → Start (can be set to "automatic")
Description: This service is available as long as the. Net Framework v1.0/v1.1 is installed.
3. Change Web.config
Open web.config→ find <sessionState> node content
<sessionstate
Mode= "InProc"
Stateconnectionstring= "tcpip=127.0.0.1:42424"
sqlconnectionstring= "Data source=127.0.0.1; Trusted_connection=yes "
Cookieless= "false"
Timeout= "/>"
→ Change it to the following content
"StateServer" stateconnectionstring= "tcpip=192.168.0.2:42424" timeout= "<sessionstatemode="/>
Precautions:
A), when set to StateServer, must have a corresponding stateconnectionstring
b, note IP address (can be remote computer IP, computer name, domain name) and port number, the port number needs to be consistent with the service port of the ASP.net State service
third, put the session into SQL Server save
SQL Server mode is where the session is stored in a SQL Server database (note that it is not Oracle, the toes can be guessed), and here's how to set up the steps:
1, start the relevant database services (as shown)
Run SQL Server Service Manager → start SQL Server (preferably at power-on autorun) → Start SQL Server Agent service (preferably set to run automatically)
Precautions:
A), note the boot sequence can also be set by: Right click on "My Computer" → admin → service and application → service → find "mssqlserver" and "SQLServerAgent" → Start and set Startup type to "Automatic"
b, the SQL Server agent is here to clear the expired session in the database
2, the establishment of the database to store the session
Run SQL Query Analyzer → Log on to the database using "sa" or a user with db_owner permissions of "master" → Open the query file c:/winnt/microsoft.net/framework/v1.1.4322/ InstallSqlState.sql (to be found in the. Net installation directory of the Windows system directory) → Run the SQL script directly → refresh the database to see the DB named ASPState
3, establish a connection to the database ASPState users, and authorization for this user (this step can be skipped)
The reason for this is that you do not want to have the sa password in Web.config, and the second is that tempdb only retains the use of an SA account after the database is started, and the rest of the account's permissions are cleared, but this database is needed to save the session.
A), Enterprise Manager running SQL Server → expand database security → right-click login → new login → Enter name → choose SQL Server authentication → Enter password → specify "database" → click "Database access" → tick "ASPState" → Check "db_owner" role → click "OK" → once again enter the "password" → Click "OK" to establish aspstate users (here to establish a "sessionstateuser", the password is "123456" test users)
B, Enterprise Manager running SQL Server → expand management → expand SQL Server Agent → Right click job → click "New Job" → Enter "name" (This example is