Skip to content

Releases: dotnet/SqlClient

Preview Release v5.1.0-preview1.22279.3

19 Oct 20:25
02daa6f
Compare
Choose a tag to compare
Pre-release

[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 assigning null to SqlConnectionStringBuilder.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) and Microsoft.Data.SqlClient.SNI.runtime (.NET Core/Standard dependency) version to 5.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 a System.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 statement AppContext.SetSwitch("Switch.Microsoft.Data.SqlClient.UseManagedNetworkingOnWindows", true); to use TLS v1.3 or disabling TLS 1.3 from the registry by assigning 0 to the following HKEY_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

11 Oct 19:01
711b72c
Compare
Choose a tag to compare

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 to SqlConnectionStringBuilder.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

  • Updated Microsoft.Data.SqlClient.SNI (.NET Framework dependency) and Microsoft.Data.SqlClient.SNI.runtime (.NET Core/Standard dependency) version to 5.0.1 #1795, which includes the fix for AppDomain crash in issue #1418.

Stable Release v4.1.1

13 Sep 23:23
8aad694
Compare
Choose a tag to compare

[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

  • Updated Microsoft.Data.SqlClient.SNI (.NET Framework dependency) and Microsoft.Data.SqlClient.SNI.runtime (.NET Core/Standard dependency) version to v4.0.1 #1755, which includes the fix for AppDomain crash introducing in issue #1418
  • Various code improvements: #1711

Stable Release v4.0.2

13 Sep 22:02
8768323
Compare
Choose a tag to compare

[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

  • Updated Microsoft.Data.SqlClient.SNI (.NET Framework dependency) and Microsoft.Data.SqlClient.SNI.runtime (.NET Core/Standard dependency) version to v4.0.1 #1754, which includes the fix for AppDomain crash introducing in issue #1418
  • Various code improvements: #1723

Stable Release v3.1.1

15 Aug 16:59
7a12115
Compare
Choose a tag to compare

[Stable release 3.1.1] - 2022-08-12

Fixed

  • Fixed null SqlBinary as rowversion. #1700
  • Fixed Kerberos authentication failure when using .NET 6. #1696
  • Fixed NullReferenceException during Azure Active Directory authentication. #1695
  • Removed union overlay design and use reflection in SqlTypeWorkarounds. #1699

Stable Release v2.1.5

30 Aug 23:30
af6b1c1
Compare
Choose a tag to compare

[Stable release 2.1.5] - 2022-08-30

Fixed

  • Added CommandText length validation when using stored procedure command types. #1726
  • Fixed Kerberos authentication failure when using .NET 6. #1727
  • Removed union overlay design and used reflection in SqlTypeWorkarounds. #1729

Stable Release v5.0.0

05 Aug 20:39
8640bfb
Compare
Choose a tag to compare

Added

  • Added support for TDS 8. To use TDS 8, users should specify Encrypt=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 for TDS 8 server certificate validation. #1680
  • Updated default system protocol for TDS 8 on managed code. #1678
  • Updated Microsoft.Data.SqlClient.SNI (.NET Framework dependency) and Microsoft.Data.SqlClient.SNI.runtime (.NET Core/Standard dependency) version to 5.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

17 Jun 19:45
4fb0bca
Compare
Choose a tag to compare
Pre-release

[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

Preview Release v5.0.0-preview2

07 Apr 00:24
a0af306
Compare
Choose a tag to compare
Pre-release

Breaking changes over preview release v5.0.0-preview1

  • Dropped support for .NET Framework 4.6.1 #1574

Fixed

  • Fixed connection failure by skipping Certificate Revocation List (CRL) check during authentication #1559

Changed

  • Updated Microsoft.Data.SqlClient.SNI (.NET Framework dependency) and Microsoft.Data.SqlClient.SNI.runtime (.NET Core/Standard dependency) version to 5.0.0-preview2.22084.1. #1563
  • Updated Azure.Identity version to 1.5.0 and Microsoft.Identity.Client version to 4.30.1 #1462
  • Replaced AlwaysEncryptedAttestationException with SqlException #1515
  • Improved error message when adding wrong type to SqlParameterCollection #1547
  • Code health improvements #1343 #1370 #1371 #1438 #1483

For detailed release notes, refer 5.0.0-preview2.md

Stable Release v3.1.0

30 Mar 18:53
77ad58b
Compare
Choose a tag to compare

Added

  • Added new Attestation Protocol None for VBS enclave types. This protocol will allow users to forgo enclave attestation for VBS enclaves. #1539
  • Included 42108 and 42109 error codes to retriable transient errors list. #1560

Fixed

  • Changed EnclaveDelegate.Crypto GetEnclaveProvider to use a thread safe concurrent dictionary. #1564

For detailed release notes, refer to 3.1.0.md