asp.net - page - asp route tag helper
HabilitaciĆ³n de sesiones adhesivas en un equilibrador de carga (2)
Cualquier consejo sobre este sería muy apreciado, he estado investigando toda la mañana y todavía estoy rascándome la cabeza. Empecé en una nueva compañía hace unas semanas, donde soy el único desarrollador de .NET, ya que el desarrollo fue realizado originalmente por una empresa de outsourcing y me pidieron que investigue. Mi conocimiento del sistema existente es extremadamente limitado, pero de lo que puedo deducir es que la situación es la siguiente.
Nos gustaría habilitar sesiones adhesivas en un sitio web asp.net. De mi investigación que he reunido, necesito hacer los siguientes pasos. Estamos utilizando el servicio de estado de ASP.NET
La configuración es un servidor de equilibrio de carga que da servicio a dos servidores web.
- Asegúrese de que ambos servidores web tengan la misma clave de máquina.
- Asegúrese de que los sitios web se hayan precompilado antes de la implementación. Para la serialización de objetos por ASP.NET State Service.
- Asegúrese de que la ruta de la aplicación en la metabase iis sea idéntica en ambos servidores web.
Poco de conocimiento que me falta es dónde se almacenan las sesiones. ¿Las sesiones están almacenadas en el equilibrador de carga, pueden almacenarse en el equilibrador de carga? Por lo que he leído, los almacena el servicio de estado de ASP.NET, en caso de que el servicio se ejecute en el equilibrador de carga, por lo tanto, las sesiones se almacenan en el equilibrador de carga.
Por lo que entiendo, el servicio de estado ASP.NET se ejecuta en cada uno de los servidores web y solo se comunican entre sí para que las sesiones se almacenen en ambos servidores. Supongo que la forma en que hacen esto se basa en el tipo de algoritmo que se utiliza. Cualquier información sería muy apreciada.
Consulte también el uso de ElastiCache si está en AWS o Redis si está en el lugar como su tienda de sesión ASP.NET en lugar de usar sesiones fijas. Tiene más ventajas en términos de escalado automático, equilibrio de carga y yo diría rendimiento. Más información en http://blogs.msdn.com/b/webdev/archive/2014/05/12/announcing-asp-net-session-state-provider-for-redis-preview-release.aspx
zeencat, eche un vistazo a http://msdn.microsoft.com/en-us/library/ms178586.aspx en la sección Modo de servidor de estado:
El modo StateServer almacena el estado de la sesión en un proceso, denominado servicio de estado ASP.NET, que está separado del proceso de trabajo ASP.NET o del grupo de aplicaciones IIS. El uso de este modo asegura que el estado de la sesión se preserve si la aplicación web se reinicia y también hace que el estado de la sesión esté disponible para múltiples servidores web en una granja de servidores web. Para usar el modo StateServer, primero debe asegurarse de que el servicio de estado ASP.NET se ejecute en el servidor utilizado para el almacén de sesiones . El servicio de estado ASP.NET se instala como un servicio cuando ASP.NET y .NET Framework están instalados.
Por lo que entiendo, el servicio de estado ASP.Net se ejecuta en un servidor, como un servicio llamado estado ASP.NET , ambos servidores tendrán el mismo archivo web.config:
<configuration>
<system.web>
<sessionState mode="StateServer"
stateConnectionString="tcpip=SampleStateServer:42424"
cookieless="false"
timeout="20"/>
</system.web>
</configuration>
De esta manera, la sesión se almacena en el servidor que aloja el servicio.
Espero eso ayude, []