2010-08-05 4 views
14

Un po 'di background: attualmente utilizzo Memcached Providers per la gestione dello stato della sessione nella mia applicazione ASP.NET. Fornisce funzionalità per l'utilizzo di SQL Server come meccanismo di memorizzazione di fallback (quando è necessario eliminare le sessioni dalla cache memcached). Mi piacerebbe guardare alla creazione di un provider per RavenDB in quanto sarebbe molto più performante per questo tipo di attività.RavenDB Provider di sessioni ASP.NET?

La mia domanda è, qualcuno ha implementato una cosa del genere? (o qualcosa di simile?) - Odio reinventare la ruota. Google non fornisce alcun risultato utile (diverso da my question al riguardo nel gruppo RavenDB stesso), quindi ho pensato di portare questa domanda direttamente alla community di Stack Overflow.

+0

Quindi stai cercando di sostituire SQL Server con RavenDB ma hai ancora Memcached? O vuoi sostituire Memcached con RavenDB. Mi chiedo solo quale ti offrirà prestazioni migliori per lo stato della sessione. Grazie. – Tigran

+0

Alla fine ho optato per Couchbase e ho sfruttato l'implementazione dei provider di aspnet (per lo stato di sessione e la cache di output): https://github.com/couchbaselabs/couchbase-aspnet – DanP

risposta

18

Sono stato anche alla ricerca di un negozio di stato sessione RavenDB, e la mia ricerca non è riuscito.

Così ho creato uno:

github.com/mjrichardson/RavenDbSessionStateStoreProvider

anche disponibile tramite un NuGet package.

+0

Il pacchetto Nuget sembra essere incompatibile con NewtonSoft Json 4.5.6. Nuget tenta di "aggiornare" da 4.5.6. a 4.0.8 ... –

+0

[È il pacchetto RavenDB.Client che è incompatibile] (http://ayende.com/blog/157505/ravendb-1-0-amp-newtonsoft-json-4-5-7). Secondo il post di Ayende, dovresti essere in grado di risolvere il tuo problema facendo riferimento [versione 1.0.971 di RavenDB.Client] (http://nuget.org/packages/RavenDB.Client/1.0.971). –

3

Non per quanto ne so. RavenDB è un progetto piuttosto attivo e Memcached è praticamente morto da 2 anni e rimane a 32 bit. Si potrebbe essere meglio solo in esecuzione in IIS RavenDB

OK, quindi il codice-saggio che non venga più piccolo di questo - singolo file: http://sourceforge.net/projects/aspnetsessmysql/files/MySqlSessionStateStore.cs/download

+0

Grazie per l'input, ma memcached non è realmente il problema qui ... più in generale, sto chiedendo di creare un fornitore di sessioni per RavenDB. Il provider memcached offre semplicemente un esempio di implementazione di come potrebbe funzionare. – DanP

+0

Quindi in realtà stai cercando un codice sorgente ragionevolmente piccolo per un provider di sessioni ASP.NET che parli con qualche altro DB in modo che tu possa modificarlo per RavenDB? Unles sei totalmente contrario a scrivere del codice :-) – ZXX

3

RavenDB fornisce un fascio scadenza della sessione il che significa che i documenti vengano cancellati dopo una durata specificata. Questo è l'ideale per l'utilizzo come una sessione e significa che l'intera radice di aggregazione verrà recuperato dal RavenDB, che significa il codice molto più pulito: RavenDb Expiration Bundle