Hangfire.SqlServer 1.6.29
SQL Server 2008+ (including Express), SQL Server LocalDB and SQL Azure storage support for Hangfire (background job system for ASP.NET applications).
No packages depend on Hangfire.SqlServer.
https://www.hangfire.io/blog/
1.6.28
Backported from 1.7:
• Fixed – Don't leak a `DbConnection` instance when an exception occurs while trying to open it.
1.6.27
Backported from 1.7:
• Fixed – Cannot resolve the collation conflict in `CountersAggregator`.
• Fixed – Set `SqlParameter` types explicitly to not to duplicate query plans and and avoid conversion issues.
1.6.24
• Fixed – Validate `JobExpirationCheckInterval` option to avoid exceptions in runtime (by @carlowahlstedt).
• Fixed – Don't throw an exception, when current schema version is higher than expected.
1.6.23
• Fixed – Make `GetRangeFromSet` to be forward compatible with the 1.7.0 schema.
• Fixed – Changed some SQL queries to not to cause index scans when using 1.7.0 schema.
1.6.22
• Added – Connection factory overload for the `SqlServerStorage` class (by @chinwobble).
• Fixed – Inability to use package with Azure's managed service identity (by using a connection factory).
1.6.21
• Fixed – Change locking scheme in the `Connection.SetRangeInHash` method to avoid deadlocks.
1.6.20
• Fixed – Remove the synthetic limitation to support Azure SQL Management instance (by @TimSQL).
1.6.19
• Fixed – "String or binary data would be truncated" exception when state reason is too long.
• Fixed – Command handling in batch mode now stops after the first error due to "XACT_ABORT ON".
• Fixed – Make SqlCommandBatch disposable to dispose all the commands.
1.6.18
• Fixed – Rare deadlocks in SQL Server caused by the SetRangeInHash command.
1.6.17
• Added – `SqlServerStorageOptions.CommandBatchMaxTimeout` parameter to enable batching in transactions.
• Fixed – Timeout exceptions when there are a lot of large concurrent transactions by using the new batching method.
• Fixed – Distributed locks are safe now even in very unreliable networks and after network blips.
• Performance – Greatly decreased the number of connections required to process background jobs.
• Performance – Significantly decrease the number of roundtrips required to commit a transaction.
1.6.16
• Fixed – Lower the number of requests, when trying to acquire a distributed lock.
• Fixed – Problems with continuations and batch continuations, when using existing `SqlConnection` instance.
• Fixed – Distributed locks were silently released, when passing explicit closed connection to a storage.
• Fixed – `KeyNotFoundException` errors on various dashboard pages don't appear anymore (by @benjymous).
• Fixed – "Cannot release the application lock because it is not currently held" exceptions, when connection was closed.
• Fixed – Allow to use zero timeout for SQL Server-based distributed locks.
1.6.15
• Fixed – Timeout exceptions that's caused by SQL Server's thread pool starvation, caused by sp_getapplock.
• Fixed – Antecedent background job is constantly failing, when its continuation hasn't been fully created.
1.6.14
• Added – `SqlServerStorageOptions.SlidingInvisibilityTimeout` to fetch jobs without using transaction.
• Fixed – Transaction log is full due to 'ACTIVE_TRANSACTION' by enabling to use new non-transactional fetch.
• Fixed – `SqlServerJobQueueMonitoringApi` can't cause READ UNCOMMITTED isolation level to leak on SQL Server 2012 or earlier.
• Fixed – Add missing `SqlServerStorage(DbConnection, SqlServerStorageOptions)` constructor.
1.6.13
• Fixed – Don't hide errors occurred while running SQL migrations.
• Fixed – `KeyNotFoundException` when accessing Deleted Jobs page in Dashboard.
• Fixed – `SqlServerDistributedLock` leaks connections, when lock acquisition is failed.
1.6.9
• Fixed – `TimeoutException` on large arguments or large batches via `SqlServerOptions.CommandTimeout`.
1.6.8
• Fixed – Use `long` where possible instead of `int` for background job identifiers, full support will be in 1.7.0.
1.6.7
• Fixed – Validation added to avoid "An invalid application lock time-out" exceptions (by t0mburton).
1.6.6
• Fixed – SqlServerJobQueue class doesn't use obsolete InvisibilityTimeout parameter anymore.
1.6.5
• Fixed – Different timeout issues after making performance optimizations.
• Fixed – SQL timeouts while getting a connection, when using default settings and >= 8 CPU cores.
• Fixed – ExpirationManager is bloated by SqlError instances, when there are a lot of messages from server.
• Fixed – Counters query returned inconsistent results during CountersAggregator executions.
• Performance – Added missing NOLOCK hint for monitoring queries when using SqlServer-based queues.
• Performance – ExpirationManager is forced to use index seek operations for cascade deletions.
• Performance – CountersAggregator now uses clustered index scan to issue less logical reads.
• Performance – Paging queries in dashboard now use CTEs to utilize less logical reads.
1.6.4
• Fixed – `SqlConnection` object leaks when using nested distributed locks (in batches and continuations).
1.6.3
• Fixed – Prevent `ExpirationManager`'s command from timing out, when there are a lot of records.
• Fixed – `CountersAggregator` issue introduced in 1.6.2, that causes slow record aggregation.
• Fixed – Add `XLOCK` hint for `CountersAggregator` query to prevent deadlocks on lock escalation.
1.6.2
• Changed – `JobExpirationCheckInterval` property value now defaults to 30 minutes.
• Fixed – Excessive blocking when expiring records in `State` and `JobParameters` tables.
• Fixed – Migration script `Install.sql` was deadlocked by itself, leading to errors on startup.
1.6.0
• Added – .NET Core support for Hangfire.Core and Hangfire.SqlServer packages (`netstandard1.3` target).
• Added – Zero latency processing when client and server reside in the same process (by @bgurmendi).
• Changed – `SqlServerStorage` class constructor now takes `DbConnection` instances (by @tystol).
• Changed – `SqlServerObjectsInstaller` class is public now (by @vbfox).
• Changed – Update Dapper to 1.50.1 version.
• Fixed – Drop constraints on Server.Id prior to altering it to avoid conflicts.
.NET Framework 4.5
- Hangfire.Core (= 1.6.29)
.NET Standard 1.3
- Microsoft.NETCore.Portable.Compatibility (>= 1.0.1)
- NETStandard.Library (>= 1.6.0)
- System.Data.Common (>= 4.1.0)
- System.Data.SqlClient (>= 4.1.0)
- Dapper (>= 1.50.1)
- Hangfire.Core (= 1.6.29)
Version | Downloads | Last updated |
---|---|---|
1.8.18 | 9 | 2/20/2025 |
1.8.17 | 13 | 12/19/2024 |
1.8.16 | 12 | 12/20/2024 |
1.8.15 | 11 | 12/20/2024 |
1.8.14 | 19 | 7/7/2024 |
1.8.12 | 17 | 4/24/2024 |
1.8.11 | 20 | 3/8/2024 |
1.8.10 | 22 | 3/5/2024 |
1.8.9 | 20 | 3/8/2024 |
1.8.7 | 19 | 3/8/2024 |
1.8.6 | 18 | 3/8/2024 |
1.8.5 | 20 | 2/26/2024 |
1.8.4 | 18 | 3/8/2024 |
1.8.3 | 21 | 7/2/2023 |
1.8.2 | 18 | 7/2/2023 |
1.8.1 | 21 | 7/2/2023 |
1.8.0 | 18 | 7/2/2023 |
1.8.0-rc4 | 19 | 7/2/2023 |
1.8.0-rc3 | 22 | 7/2/2023 |
1.8.0-rc2 | 20 | 7/2/2023 |
1.8.0-rc1 | 23 | 7/2/2023 |
1.8.0-beta4 | 21 | 7/2/2023 |
1.8.0-beta3 | 22 | 7/2/2023 |
1.8.0-beta2 | 23 | 7/2/2023 |
1.8.0-beta1 | 22 | 7/2/2023 |
1.7.37 | 19 | 4/24/2024 |
1.7.36 | 19 | 7/2/2023 |
1.7.35 | 23 | 7/2/2023 |
1.7.34 | 23 | 7/2/2023 |
1.7.33 | 23 | 7/2/2023 |
1.7.32 | 25 | 7/2/2023 |
1.7.31 | 21 | 7/2/2023 |
1.7.30 | 21 | 7/2/2023 |
1.7.29 | 21 | 7/2/2023 |
1.7.28 | 23 | 7/2/2023 |
1.7.27 | 24 | 7/2/2023 |
1.7.26 | 20 | 7/2/2023 |
1.7.25 | 23 | 7/2/2023 |
1.7.24 | 20 | 7/2/2023 |
1.7.23 | 19 | 7/2/2023 |
1.7.22 | 19 | 7/2/2023 |
1.7.21 | 19 | 7/2/2023 |
1.7.20 | 21 | 7/2/2023 |
1.7.19 | 22 | 7/2/2023 |
1.7.18 | 21 | 7/2/2023 |
1.7.17 | 24 | 4/12/2022 |
1.7.16 | 23 | 7/2/2023 |
1.7.15 | 22 | 7/2/2023 |
1.7.14 | 23 | 7/2/2023 |
1.7.13 | 19 | 7/2/2023 |
1.7.12 | 25 | 7/2/2023 |
1.7.11 | 21 | 7/2/2023 |
1.7.10 | 21 | 7/2/2023 |
1.7.9 | 21 | 7/2/2023 |
1.7.8 | 18 | 7/2/2023 |
1.7.7 | 20 | 7/2/2023 |
1.7.6 | 19 | 7/2/2023 |
1.7.5 | 19 | 7/2/2023 |
1.7.4 | 19 | 7/2/2023 |
1.7.3 | 23 | 7/2/2023 |
1.7.2 | 24 | 7/2/2023 |
1.7.1 | 18 | 7/2/2023 |
1.7.0 | 25 | 7/2/2023 |
1.6.30 | 19 | 7/2/2023 |
1.6.29 | 19 | 7/2/2023 |
1.6.28 | 21 | 7/2/2023 |
1.6.27 | 22 | 7/2/2023 |
1.6.26 | 21 | 7/2/2023 |
1.6.25 | 22 | 7/2/2023 |
1.6.24 | 19 | 7/2/2023 |
1.6.23 | 21 | 7/2/2023 |
1.6.22 | 24 | 7/2/2023 |
1.6.21 | 22 | 7/2/2023 |
1.6.20 | 21 | 7/2/2023 |
1.6.19 | 21 | 7/2/2023 |
1.6.18 | 21 | 7/2/2023 |
1.6.17 | 20 | 7/2/2023 |
1.6.16 | 22 | 7/2/2023 |
1.6.15 | 26 | 7/2/2023 |
1.6.14 | 23 | 7/2/2023 |
1.6.13 | 21 | 7/2/2023 |
1.6.12 | 22 | 7/2/2023 |
1.6.11 | 25 | 7/2/2023 |
1.6.10 | 20 | 7/2/2023 |
1.6.9 | 20 | 7/2/2023 |
1.6.8 | 18 | 7/2/2023 |
1.6.7 | 23 | 7/2/2023 |
1.6.6 | 22 | 7/2/2023 |
1.6.5 | 18 | 7/2/2023 |
1.6.4 | 22 | 7/2/2023 |
1.6.3 | 20 | 7/2/2023 |
1.6.2 | 22 | 7/2/2023 |
1.6.1 | 23 | 7/2/2023 |
1.6.0 | 20 | 7/2/2023 |
1.5.9 | 19 | 7/2/2023 |
1.5.8 | 22 | 7/2/2023 |
1.5.7 | 20 | 7/2/2023 |
1.5.6 | 20 | 7/2/2023 |
1.5.5 | 19 | 7/2/2023 |
1.5.4 | 22 | 7/2/2023 |
1.5.3 | 24 | 7/2/2023 |
1.5.2 | 25 | 7/2/2023 |
1.5.1 | 20 | 7/2/2023 |
1.5.0 | 19 | 7/2/2023 |
1.4.7 | 23 | 7/2/2023 |
1.4.6 | 22 | 7/2/2023 |
1.4.5 | 22 | 7/2/2023 |
1.4.4 | 20 | 7/2/2023 |
1.4.3 | 24 | 7/2/2023 |
1.4.2 | 19 | 7/2/2023 |
1.4.1 | 21 | 7/2/2023 |
1.3.4 | 25 | 7/2/2023 |
1.3.3 | 21 | 7/2/2023 |
1.3.2 | 23 | 7/2/2023 |
1.3.1 | 24 | 7/2/2023 |
1.3.0 | 23 | 7/2/2023 |
1.2.2 | 23 | 7/2/2023 |
1.2.1 | 21 | 7/2/2023 |
1.2.0 | 22 | 7/2/2023 |
1.1.1 | 20 | 7/2/2023 |
1.1.0 | 22 | 7/2/2023 |
1.0.2 | 21 | 7/2/2023 |
1.0.1 | 21 | 7/2/2023 |
1.0.0 | 21 | 7/2/2023 |
0.9.1 | 27 | 7/2/2023 |
0.9.0 | 23 | 7/2/2023 |
0.8.3 | 23 | 7/2/2023 |
0.8.2 | 19 | 7/2/2023 |
0.8.1 | 19 | 7/2/2023 |
0.8.0 | 19 | 7/2/2023 |
0.7.5 | 21 | 7/2/2023 |
0.7.4 | 25 | 7/2/2023 |
0.7.3 | 21 | 7/2/2023 |
0.7.1 | 21 | 7/2/2023 |
0.7.0 | 25 | 7/2/2023 |