Below is a summary of the the main features/bug fixes in the most recent releases.
Note: For .NET Core, please refer details found here.
Remove empty catch swallowing serialization errors.
This version fixes a bug in v5.0.2 where the null check during deserialization was not sufficient. We added a try-catch back to the method.
This version updates Stack Exchange Redis and adds a null check for the serialization methods.
Removed try-catch around serialization so it now throws an error. Updated the assembly versions to match the release versions. Downgraded Microsoft.Bcl.AsyncInterfaces to version 5.0.0
This release provides an update for the RedisSessionStateProvider nuget package. As a BREAKING CHANGE, the underlying serialization method has changed. SessionStateItemCollection objects are now treated as an atomic unit. The ability to add custom serialization has been removed. These changes were made for necessary security improvements.
Note: v4.0+ requires .NET Framework 4.6.2 or higher. v3.0+ requires .NET Framework 4.5.2 or higher. If you are using .net 4.0, 4.5.0 or 4.5.1, then please use an older version of Session State Provider (i.e. 2.x).
Updates .NET target framework to 4.6.2, StackExchange.Redis to v2.0.519.
Provider throws InvalidOperationException at random timing
This package is in preview as version 3.0.0 is created on top of the new ASP.Net async session state module, and so it has some major changes.
This package supports lock-free session state provide with .net 4.6.2 or higher. To use session state in lock-free mode please include the following setting in your web.config
. If you want to continue to use session state with locks, then no web.config
changes are needed.
<appSettings>
<add key="aspnet:AllowConcurrentRequestsPerSession" value="true"/>
</appSettings>
Recreate stack exchange redis connection multiplexer, if it goes into a bad state. Also, this is the last release that supports .NET 4.0.
Lazy deserialize of session data: Deserialize session data only when accessed by application and not when fetched from Redis. As well as, Updated StackExchange.Redis.
Issues fixed: #46
Updated StackExchange.Redis as part of one of the pull request merged.
Merged following pull request:
#43
#47
#53
This contains custom/extensible serialization/deserialization mechanism
Issues fixed: #29
Merged following pull request: #38
Merged following pull request.
#26
#3
Redis ConnectionString connectionString
can be provided in the following ways:
You can use only one of the following: connectionString
or settingsClassName
to provide connection string.
connectionString
literal value will map to an AppSetting Key. The value of the AppSetting Key will be the connectionstring.- If AppSetting is not found,
connectionString
literal value will map to the name of the ConnectionString in the connectionstring section. - If the ConnectionString is not found in the connectionStrings section, then the literal value of
connectionString
will be used as it is.
settingsClassName
should be a fully qualified class name that contains method specified by settingsMethodName
. settingsMethodName
should be public, static, should not take any parameters and should have a return type of String
, which is basically actual connection string value. You can get connection string from anywhere in this method.
Minor bug fixes. Updated StackExchange.Redis.StrongName
to version 1.0.488 from 1.0.481.
Updated StackExchange.Redis.StrongName
to version 1.0.481 from 1.0.394. Due to clustering related bugs in version 1.0.394.
2.*
versions of this package contain a breaking change from 1.*
versions in the format of key names used to store session data. In order to support Redis Clusters, key names now include brackets. As a result of this change, existing session data will not be recognized by this session state provider.
Details and migration information
Removed try-catch around serialization so it now throws an error. Updated the assembly versions to match the release versions. Downgraded Microsoft.Bcl.AsyncInterfaces to version 5.0.0
This release provides an update for the RedisSessionStateProvider nuget package. As a BREAKING CHANGE, the underlying serialization method has changed. The ability to add custom serialization has been removed. These changes were made for necessary security improvements.
Note: v4.0+ requires .NET Framework 4.6.2 or higher. v3.0+ requires .NET Framework 4.5.2 or higher. If you are using .net 4.0, 4.5.0 or 4.5.1, then please use an older version of Session State Provider (i.e. 2.x).
Updates .NET target framework to 4.6.2, StackExchange.Redis to v2.0.519. This version also uses the ASP.NET Async OutputCache Module.
This package is in preview as version 2.0.1 is created on top of the new ASP.Net async output cache module, and so it has some major changes.
Recreate stack exchange redis connection multiplexer, if it goes into bad state. Also, this is the last release that supports .NET 4.0.
Updated StackExchange.Redis.
Updated StackExchange.Redis as part of one of the pull request merged.
Merged following pull request:
#43
#47
#53
This contains custom/extensible serialization/deserialization mechanism
Issues fixed: #29
Merged following pull request: #38
Issues fixed.
#39
Merged following pull request.
#31
Updated StackExchange.Redis.StrongName
to version 1.0.488 from 1.0.481.
Updated StackExchange.Redis.StrongName
to version 1.0.481 from 1.0.394. Due to clustering related bugs in version 1.0.394.
Redis ConnectionString connectionString
can be provided in the following ways:
You can use only one of the following: connectionString
OR settingsClassName
to provide connection string.
connectionString
literal value will map to an AppSetting Key. The value of the AppSetting Key will be the connectionstring.- If AppSetting is not found,
connectionString
literal value will map to the name of the ConnectionString in the connectionstring section. - If the ConnectionString is not found in the connectionStrings section, then the literal value of
connectionString
will be used as it is.
settingsClassName
should be a fully qualified class name that contains method specified by settingsMethodName
. settingsMethodName
should be public, static, should not take any parameters and should have a return type of String
, which is basically actual connection string value. You can get connection string from anywhere in this method.