This article is contributed. See the original author and article here.

Microsoft.Data.SqlClient 5.1 Preview 1 has been released. This release contains improvements and updates to the Microsoft.Data.SqlClient data provider for SQL Server.


Our plan is to provide GA releases twice a year with two or three preview releases in between. This cadence should provide time for feedback and allow us to deliver features and fixes in a timely manner. This third 5.0 preview includes fixes and changes over the previous preview release.


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_MACHINESYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.3ClientEnabled registry key and it’ll use TLS v1.2 for the connection. This will be fixed in a future release.


 


For the full list of changes in Microsoft.Data.SqlClient 5.1 Preview 1, please see the Release Notes.


 


To try out the new package, add a NuGet reference to Microsoft.Data.SqlClient in your application and pick the 5.1 preview 1 version.


 


We appreciate the time and effort you spend checking out our previews. It makes the final product that much better. If you encounter any issues or have any feedback, head over to the SqlClient GitHub repository and submit an issue.


 


David Engel

Brought to you by Dr. Ware, Microsoft Office 365 Silver Partner, Charleston SC.