¿Que más necesito para poder almacenar la sesión en un cache de redis? – redisc# asp.net-mvc-5 asp.net-mvc

Pregunta:


Ya instale la librería de RedisSessionStateProvider y su dependencia StackExchange.Redis.StrongName, también coloque la configuración en el web.config

<sessionState mode="Custom" customProvider="RedisSessionProvider" cookieless="true" >
   <providers>
      <add name="RedisSessionProvider" type="Microsoft.Web.Redis.RedisSessionStateProvider" port="6380" host="XXX.redis.cache.windows.net" accessKey="OQm………15E=" ssl="true" connectionTimeoutInMilliseconds="5000" operationTimeoutInMilliseconds="1000" retryTimeoutInMilliseconds="3000" writeExceptionsToEventLog="true" />

 </providers>
</sessionState>

Pero no logró que se almacene la sesión en , pero si realizo la conexión en código la conexión es exitosa, aquí está mi código:

/// se crea la conexión
private static Lazy<ConnectionMultiplexer> lazyConnection = new Lazy<ConnectionMultiplexer>(() =>
{
    var redisOption = new ConfigurationOptions();
    return ConnectionMultiplexer.Connect("XXX.redis.cache.windows.net:6380,abortConnect=false,ssl=true,password=OQmAPmp0 . . . . TJE15E=");
});


///regresa el objeto de la conexion

public static ConnectionMultiplexer Connection
{
    get
    {
        return lazyConnection.Value;
    }
} 

///creo la session y agrego elementos manualmente al redis       
public ActionResult SessionStart()
{
    IDatabase cache = Connection.GetDatabase();
    Session["loginTime"] = DateTime.Now.ToString();
    string strValue = "myvalue";
    Session.Add("myvalue ", strValue);
    return View();
}

Por ejemplo lo que agrego manualmente se almacena exitosamente pero sí creo una sesión no se almacena en automático, creo necesito algo mas pero no que es.

Preguntado por: Luis Raúl Espinoza Barboza

JuanK

Acabo de hacerlo desde mi propio proyecto sin problemas, utiliza este código para probarlo en tu ambiente. Te recomiendo que lo pruebes en un proyecto en limpio, puede que tengas algo mal en tu web.config que no esté permitiendo cargar el provider y no lo hayas notado

web.config

<sessionState mode="Custom" customProvider="MySessionStateStore" >
  <providers>
    <add name="MySessionStateStore"
         type="Microsoft.Web.Redis.RedisSessionStateProvider"
         host="abcde1234.redis.cache.windows.net"
         accessKey="FuDmzfO3B/6M1cX1ls="
         ssl="true" throwOnError="true" port="6380" writeExceptionsToEventLog="true"
         databaseId = "1"
         />
  </providers>
</sessionState>

y tan solo con esto en mi home controller (o el que quieras)

HomeController/Index

Session["test-" + Guid.NewGuid().ToString()] = DateTime.Now.ToLongDateString();

Para verificar los valores uso Redis Desktop Manager

introducir la descripción de la imagen aquí

Recomendaria seguir guias como esta

How to Use Azure Redis Cache

para implementar redis integrado en tu aplciacion que publiques en azure. Despues de seguir esa guia si continuas con problemas se podria analizar, pero partimos de una base que has implementado.

Analizando un poco mas en profundidad puedo ver una implementacion que configura el session state usando redis

ASP.NET Session State Provider for Azure Redis Cache

La verdad siempre habia visto a redis usandose como objetos del propio cache o en union a un orm como ser entity framework, pero veo que tambien puede reemplazar los objetos de asp.net

saludos

Fuente

Related Posts:

Declarar un array de structs de tamaño dinamico – c++
Pregunta: buenas, lo que quiero conseguir es declarar un struct con array que tenga su tamaño dinamico, pero cuando lo hago el programa se me ...
Problemas con el registro de un archivo .tlb – c# windows vb6
Pregunta: La situación es la siguiente: He creado un pequeño proyecto de librería de clases en C# que me permita realizar ciertas operaciones. El nombre del ...
listar datos en una vista parcial pasandolos desde una ventana modal – ajax asp.net-mvc asp.net-mvc-5
Pregunta: Tengo una ventana modal con un formulario del cual quiero retornar los datos ingresados a una vista parcial y ponerlos en lista como se ...
Uso de js y c# en unity. ¿Igual rendimiento? – javascript c# unity3d
Pregunta: Estoy comenzando con unity . Y veo que se pueden usar c# y js para programar. Mi pregunta es si tanto c# como js ...
Cómo puedo incluir librería beecrypt en un proyecto en C – c
Pregunta: Tengo un archivo .lib (librería) y quiero usarla en un proyecto de C. Para ser más especifica estoy intentando instalar beecrypt que es una librería ...
Ocultar y Mostrar con Mapa de Google – javascript c# asp.net
Pregunta: Tengo un div en mi página ASP.NET que contiene un Mapa de Google, y necesito mostrarlo y ocultarlo pero no me funciona. Este es el ...
para que sirve #ifdef_MSDOS_ en c++? – c++
Pregunta: He tenido problemas porque donde trabajo usan una versión de dev c++ 4.9 y yo uso en mi hogar la 5.1, ...
¿Como instalar C# en SublimeText? – c# sublimetext3 sublimetext
Pregunta: El problema es que actualmente quiero programar sobre esta tecnologia, pero no quiero descargar aun el visual studio porque consume recursos y es bastante ...
Thread en c++ error compilacion – c++
Pregunta: Estoy empezando con threads y he estado siguien varios tutos y creo que esta todo bien, pero a la hora de ejecutarlo me da ...
¿Es posible capturar un segfault con try/catch? – c++ try-catch
Pregunta: Para comprobar si es posible hice lo siguiente: try { int *x = 0; *x = 1234; } catch(...) { ...
Conexion C# con PostgreSQL mediante proveedor Npgsql – c# postgresql
Pregunta: Hola el problema es que la conexión esta bien solo cuando estoy utilizando el ODBC, pero cuando lo cambio al proveedor de PostgreSQL Npgsql, ...
Construcción extraña: objeto = funcion1() && funcion2() ¿Posible? – c#
Pregunta: acabo de encontrarme en una documentación una construcción como esta: var pose = Body.LeftHand.Near(Body.Head) && Body.LeftArm.Bended(90); posees una objeto que debe crearse a partir de la ...
Cómo importar datos de un Excel a DataGrid pero iniciarlo en la segunda fila? – c# sql-server postgresql
Pregunta: Disculpen una duda, como cargar de excel un formato iniciando en la segunda fila? tengo este código solamente que el excel esta justificado en ...
No completa el ciclo foreach – c#
Pregunta: Estoy haciendo un método para invertir palabras que contengan 5 o mas letras. El problema que tengo es que si mi cadena tiene mas ...
Obtener elementos específicos de un array – c array optimización
Pregunta: Buenas, si yo por ejemplo hago: char buf; fgets(buf, 1024, stdin); ¿Puedo coger los caracteres que escribí del array sin coger los elementos que no utilicé? ¿O ...

Add a Comment

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *