¿Cómo guarda el equilibrio de carga iis el estado de la sesión?
Inproc es la configuración predeterminada. Este patrón es similar al enfoque de estado de sesión ASP anterior. El estado de la sesión se guardará en el proceso ASP.NET y su ventaja es obvia: el rendimiento. El acceso a los datos en el proceso será, naturalmente, más rápido que el proceso de fanfarronear. Sin embargo, el estado de la sesión en este método depende del proceso ASP.NET. Cuando el proceso de IIS falla o se reinicia normalmente, se perderá el estado guardado en el proceso.
En segundo lugar, el modo StateServer
Para superar las deficiencias del modo Inproc, ASP.NET proporciona dos métodos para mantener el estado de la sesión fuera del proceso.
ASP.NET primero proporciona un servicio de Windows: ASPState. Después de iniciar este servicio, la aplicación ASP.NET puede configurar el atributo de modo en "SateServer" para utilizar el método de administración de estado proporcionado por este servicio de Windows.
Además de configurar el atributo de modo en StateServer en el archivo web.config, también debe configurar la dirección IP y el número de puerto del servidor que ejecuta StateServer. El método de configuración específico es el siguiente:
2.1 Si StateServer se está ejecutando en la máquina donde se encuentra IIS, la dirección IP es 127.0.0.1 y el número de puerto suele ser 42424. La configuración es la siguiente:
mode="StateServer "
stateConnectionString = " tcpip = 127 . 0 . 0 . 1:42424 "
2.2 Buscar un servidor como servidor de sesión.
Si la IP es: 172.18.1.188, inicie el servicio de estado ASP.NET en Windows (el número de puerto predeterminado es 42424) y cambie el tipo de inicio a automático.
2.3 Modifique las claves del servidor de sesión en el registro:
El valor de la clave AllowRemoteConnection en HKEY _ local _ machine \ system \ current control set \ services \ aspnet _ state \ parámetros para el puerto de escucha del ASP. NET es 1; después de la modificación, el servidor nacional ASP.NET debe reiniciarse para que surta efecto;
2.4 La configuración web stateConnectionString de cada servidor apunta al servidor.
Usando este modo, el almacenamiento del estado de la sesión no dependerá del fallo o reinicio del proceso IIS. El estado de la sesión se almacenará en el espacio de memoria del proceso StateServer.
En tercer lugar, el modo SQlServer
Otro modo de estado de sesión es el modo SQLServer. Este modo guarda el estado de la sesión en una base de datos de SQL Server. Antes de utilizar este modo, debe tener al menos un servidor SQL Server y las tablas y procedimientos almacenados necesarios deben estar establecidos en el servidor. de. NET SDK proporciona dos scripts para simplificar este trabajo: InstallSqlState.sql y UnInstallSqlState.sql.
c:\windows\Microsoft. NET\Framework
Para configurar el servidor SQL Server, puede ejecutar la herramienta de línea de comandos osql.exe proporcionada por SQL Server en la línea de comandos.
osql-s[nombre del servidor]-u[usuario]-p[contraseña]
Por ejemplo:
osql -s(local)-u como - p ""-i InstallSqlState.sql
Después de completar los preparativos necesarios de la base de datos, cambie el atributo de modo del elemento sessionstate en el archivo web.config a "sqlserver" y especifique la cadena de conexión SQL. Los detalles son los siguientes:
mode="SQLServer "
sqlConnectionString = " fuente de datos = 127. 0. 0. 1; ID de usuario = sa contraseña =; Trusted_Connection=yes "
El uso del modo SQL Server puede hacer que el estado de la sesión sea independiente del servidor IIS. También puede usar un clúster de SQL Server para hacer que el almacenamiento del estado sea independiente de un único servidor SQL, lo que puede proporcionar una gran confiabilidad para las aplicaciones.