Releases: dotnet/SqlClient
Releases · dotnet/SqlClient
Stable Release v5.1.0
Breaking changes
Added
- Added support for .NET 6.0. #1704
- Added support for
DateOnly
andTimeOnly
forSqlParameter
value andGetFieldValue
. #1813 - Added support for TLS 1.3 on .NET Core and native SNI. #1821
- Added
ServerCertificate
setting forEncrypt=Mandatory
orEncrypt=Strict
. #1822 - Added Windows ARM64 support when targeting .NET Framework. #1828
Fixed
- Fixed thread safety of transient error list in configurable retry logic. #1882
- Fixed deadlock when using SinglePhaseCommit with distributed transactions. #1801
- Fixed Dedicated Admin Connections (DAC) to localhost in managed SNI #1865
- Fixed memory leak regression from #1781 using a
DisposableTemporaryOnStack
struct. #1818 - Fixed
ReadAsync()
behavior to register Cancellation token action before streaming results. #1781 - Fixed
NullReferenceException
when assigningnull
toSqlConnectionStringBuilder.Encrypt
. #1778 - Fixed missing
HostNameInCertificate
property in .NET Framework Reference Project. #1776 - Fixed async deadlock issue when sending attention fails due to network failure. #1766
- Fixed failed connection requests in ConnectionPool in case of PoolBlock. #1768
- Fixed hang on infinite timeout and managed SNI. #1742
- Fixed Default UTF8 collation conflict. #1739
Changed
- Updated
Microsoft.Data.SqlClient.SNI
(.NET Framework dependency) andMicrosoft.Data.SqlClient.SNI.runtime
(.NET Core/Standard dependency) version to5.1.0
. #1889 which includes fix for AppDomain crash in issue #1418, TLS 1.3 Support, removal of ARM32 binaries, and support for theServerCertificate
option. #1822 Read more - Reverted "Excluding unsupported TLS protocols" for issue #1151 (i.e. removed
Switch.Microsoft.Data.SqlClient.EnableSecureProtocolsByOS
) by adding support for TLS 1.3. #1824 - Changed the
SqlConnectionEncryptOption
string parser to public. #1771 - Converted
ExecuteNonQueryAsync
to use async context object. #1692 - Code health improvements #1867 #1849 #1812 #1520 #1604 #1598 #1595 #1443
For summary of all changes over v5.0, refer to 5.1.0.md
Preview Release 5.1.0-preview2.22314.2
[Preview Release 5.1.0-preview2.22314.2] - 2022-11-10
This update brings the below changes over the previous release:
Breaking changes over preview release v5.1.0-preview1
Added
- Added support for
DateOnly
andTimeOnly
forSqlParameter
value andGetFieldValue
. #1813 - Added support for TLS 1.3 for .NET Core and SNI Native. #1821
- Added
ServerCertificate
support forEncrypt=Mandatory
orEncrypt=Strict
. #1822 - Added Windows ARM64 support when targeting .NET Framework. #1828
Fixed
Changed
- Updated
Microsoft.Data.SqlClient.SNI
(.NET Framework dependency) andMicrosoft.Data.SqlClient.SNI.runtime
(.NET Core/Standard dependency) version to5.1.0-preview2.22311.2
. #1831 which includes the fix for the TLS 1.3 timeout and double handshake issue, removal of ARM32 binaries, and support for theServerCertificate
option. #1822 - Reverted "Excluding unsupported TLS protocols" for issue #1151 (i.e. removed
Switch.Microsoft.Data.SqlClient.EnableSecureProtocolsByOS
) by adding support for TLS 1.3. #1824 - Code health improvements #1812 #1520
For detailed release notes, refer to 5.1.0-preview2.md
Preview Release v5.1.0-preview1.22279.3
[Preview Release 5.1.0-preview1.22279.3] - 2022-10-19
This update brings the below changes over the stable release v5.0.0:
Fixed
- Fixed
ReadAsync()
behavior to register Cancellation token action before streaming results. #1781 - Fixed
NullReferenceException
when assigningnull
toSqlConnectionStringBuilder.Encrypt
. #1778 - Fixed missing
HostNameInCertificate
property in .NET Framework Reference Project. #1776 - Fixed async deadlock issue when sending attention fails due to network failure. #1766
- Fixed failed connection requests in ConnectionPool in case of PoolBlock. #1768
- Fixed hang on infinite timeout and managed SNI. #1742
- Fixed Default UTF8 collation conflict. #1739
Changed
- Updated
Microsoft.Data.SqlClient.SNI
(.NET Framework dependency) andMicrosoft.Data.SqlClient.SNI.runtime
(.NET Core/Standard dependency) version to5.1.0-preview1.22278.1
. #1787 which includes TLS 1.3 Support and fix for AppDomain crash in issue #1418 - Changed the
SqlConnectionEncryptOption
string parser to public. #1771 - Converted
ExecuteNonQueryAsync
to use async context object. #1692 - Code health improvements #1604 #1598 #1595 #1443
Known issues
- When using
Encrypt=Strict
with TLS v1.3, the TLS handshake occurs twice on initial connection on .NET Framework due to a timeout during the TLS handshake and a retry helper re-establishes the connection; however, on .NET Core, it will throw aSystem.ComponentModel.Win32Exception (258): The wait operation timed out.
and is being investigated. If you're using Microsoft.Data.SqlClient with .NET Core on Windows 11, you will need to enable the managed SNI on Windows context switch using following statementAppContext.SetSwitch("Switch.Microsoft.Data.SqlClient.UseManagedNetworkingOnWindows", true);
to use TLS v1.3 or disabling TLS 1.3 from the registry by assigning0
to the followingHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.3\Client\Enabled
registry key and it'll use TLS v1.2 for the connection. This will be fixed in a future release.
For detailed release notes, refer to 5.1.0-preview1.md
Stable Release v5.0.1
Fixed
- Fixed missing
HostNameInCertificate
connection string property in .NET Framework. #1782 - Fixed async deadlock issue when sending attention fails due to network failure. #1783
- Fixed Null Reference Exception on assigning
null
toSqlConnectionStringBuilder.Encrypt
. #1784 - Fixed
ReadAsync()
behavior to register Cancellation token action before streaming results. #1785 - Fixed hang on infinite timeout and managed SNI. #1798
- Fixed Default UTF8 collation conflict. #1799
Changed
Stable Release v4.1.1
[Stable release 4.1.1] - 2022-09-13
Fixed
- Fixed connection failure by not requiring Certificate Revocation List (CRL) check during authentication. #1706
- Parallelize SSRP requests on Linux and macOS when MultiSubNetFailover is specified. #1708, #1746
- Added CommandText length validation when using stored procedure command types. #1709
- Fixed NullReferenceException during Azure Active Directory authentication. #1710
- Fixed null SqlBinary as rowversion. #1712
- Fixed table's collation overriding with default UTF8 collation. #1749
Changed
Stable Release v4.0.2
[Stable release 4.0.2] - 2022-09-13
Fixed
- Fixed connection failure by not requiring Certificate Revocation List (CRL) check during authentication. #1718
- Parallelize SSRP requests on Linux and macOS when MultiSubNetFailover is specified. #1720, #1747
- Added CommandText length validation when using stored procedure command types. #1721
- Fixed NullReferenceException during Azure Active Directory authentication. #1722
- Fixed null SqlBinary as rowversion. #1724
- Fixed table's collation overriding with default UTF8 collation. #1750
Changed
Stable Release v3.1.1
[Stable release 3.1.1] - 2022-08-12
Fixed
Stable Release v2.1.5
Stable Release v5.0.0
Added
- Added support for
TDS 8
. To use TDS 8, users should specifyEncrypt=Strict
in the connection string. #1608 - Added
TDS 8
version for TDSLogin. #1657
Fixed
- Fixed null SqlBinary as rowversion. #1688
- Fixed KeyNotFoundException for the
FailoverPartner
key on SQL servers with availability group configured. #1614 - Fixed small inconsistency between netcore and netfx for
EncryptionOptions
. #1672 - Fixed
Microsoft.SqlServer.Server
netcore project package reference. #1654
Changed
- Updated
AuthProviderInfo
struct to be matched the changes in native SNI forTDS 8
server certificate validation. #1680 - Updated default system protocol for
TDS 8
on managed code. #1678 - Updated
Microsoft.Data.SqlClient.SNI
(.NET Framework dependency) andMicrosoft.Data.SqlClient.SNI.runtime
(.NET Core/Standard dependency) version to5.0.0
. #1680 - Updated IdentityModel dependency from 6.8.0 to 6.21.0 and IdentityClient from 4.32.2 to 4.45.0. #1646
- Changed from union overlay design to reflected interfaces for SqlTypes. 1647
For summary of all changes over v4.1, refer to 5.0.0.md
Preview Release v5.0.0-preview3
[Preview Release 5.0.0-preview3.22168.1] - 2022-06-16
Breaking changes over preview release v5.0.0-preview2
- Added a dependency on the Microsoft.SqlServer.Server package. This new dependency may cause namespace conflicts if your application references that namespace and still has package references (direct or indirect) to System.Data.SqlClient from .NET Core.
- Dropped classes from the
Microsoft.Data.SqlClient.Server
namespace and replaced them with supported types from the Microsoft.SqlServer.Server package.#1585 The affected classes and enums are:- Microsoft.Data.SqlClient.Server.IBinarySerialize -> Microsoft.SqlServer.Server.IBinarySerialize
- Microsoft.Data.SqlClient.Server.InvalidUdtException -> Microsoft.SqlServer.Server.InvalidUdtException
- Microsoft.Data.SqlClient.Server.SqlFacetAttribute -> Microsoft.SqlServer.Server.SqlFacetAttribute
- Microsoft.Data.SqlClient.Server.SqlFunctionAttribute -> Microsoft.SqlServer.Server.SqlFunctionAttribute
- Microsoft.Data.SqlClient.Server.SqlMethodAttribute -> Microsoft.SqlServer.Server.SqlMethodAttribute
- Microsoft.Data.SqlClient.Server.SqlUserDefinedAggregateAttribute -> Microsoft.SqlServer.Server.SqlUserDefinedAggregateAttribute
- Microsoft.Data.SqlClient.Server.SqlUserDefinedTypeAttribute -> Microsoft.SqlServer.Server.SqlUserDefinedTypeAttribute
- (enum) Microsoft.Data.SqlClient.Server.DataAccessKind -> Microsoft.SqlServer.Server.DataAccessKind
- (enum) Microsoft.Data.SqlClient.Server.Format -> Microsoft.SqlServer.Server.Format
- (enum) Microsoft.Data.SqlClient.Server.SystemDataAccessKind -> Microsoft.SqlServer.Server.SystemDataAccessKind
Added
- Added support for
TDS 8
. To use TDS 8, users should specify Encrypt=Strict in the connection string. Strict mode disables TrustServerCertificate (always treated as False in Strict mode). HostNameInCertificate has been added to help some Strict mode scenarios. #1608 - Added support for specifying Server SPN and Failover Server SPN on the connection. #1607
- Added support for aliases when targeting .NET Core on Windows. #1588
Fixed
- Fixed naming, order, and formatting for
SqlDiagnosticsListener
on .NET Core and .NET. [#1637] (#1637) - Fixed NullReferenceException during Azure Active Directory authentication. [#1625] (#1625)
- Added CommandText length validation when using stored procedure command types. #1484
- Fixed
GetSchema("StructuredTypeMembers")
to return correct schema information. [#1500] (#1500), #1639 - Fixed NullReferenceException when using
SqlDependency.Start
against an Azure SQL Database.[#1294] (#1294) - Send the correct retained transaction descriptor in the MARS TDS Header when there is no current transaction on .NET 5+ and .NET Core. [#1624] (#1624)
- Parallelize SSRP requests (instance name resolution) on Linux and macOS when MultiSubNetFailover is specified. [#1578] (#1578)
- Adjust the default ConnectRetryCount against Azure Synapse OnDemand endpoints [#1626] (#1626)
Changed
- Dropped the
Microsoft.Data.SqlClient.Server
namespace and replaced it with supported types from the Microsoft.SqlServer.Server package.#1585 - Code health improvements #1353 #1354 #1525 #1186
- Update Azure Identity dependency from 1.5.0 to 1.6.0.#1611
- Improved Regex for SqlCommandSet [#1548] (#1548)
- Rework on
TdsParserStateObjectManaged
with nullable annotations. [#1555] (#1555)
For detailed release notes, refer 5.0.0-preview3.md