Managed Heap Corruption When You Use SqlConnection and Protocol Encryption (323696)



The information in this article applies to:

  • Microsoft Data Access Components 2.7
  • Microsoft ADO.NET (included with the .NET Framework)

This article was previously published under Q323696

SYMPTOMS

When you use the System.Data.SqlClient.SqlConnection class to connect to a Microsoft SQL Server database with protocol encryption enabled, one or more objects in the .NET-managed heap can be corrupted. This causes the Microsoft .NET application to quit unexpectedly during the garbage collection phase.

RESOLUTION

A supported fix is now available from Microsoft, but it is only intended to correct the problem that is described in this article. Apply it only to computers that are experiencing this specific problem. This fix may receive additional testing. Therefore, if you are not severely affected by this problem, Microsoft recommends that you wait for the next Microsoft Data Access Components (MDAC) 2.7 that contains this hotfix.

To resolve this problem immediately, contact Microsoft Product Support Services to obtain the fix. For a complete list of Microsoft Product Support Services phone numbers and information about support costs, visit the following Microsoft Web site:NOTE: In special cases, charges that are ordinarily incurred for support calls may be canceled if a Microsoft Support Professional determines that a specific update will resolve your problem. The typical support costs will apply to additional support questions and issues that do not qualify for the specific update in question.

The English version of this fix has the file attributes (or later) that are listed in the following table. The dates and times for these files are listed in coordinated universal time (UTC). When you view the file information, it is converted to local time. To find the difference between UTC and local time, use the Time Zone tab in the Date and Time tool in Control Panel.
   Date         Time   Version            Size    File Name
   --------------------------------------------------------------
   31-May-2002  20:26  2000.81.9001.1     61,440  Dbnetlib.dll
				

STATUS

Microsoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article.

MORE INFORMATION

This problem occurs only if the following conditions are true:
  • You use multiple, concurrent instances of the SqlConnection class on multiple, concurrently running threads.
  • You enable protocol encryption for SQL Server.
  • A significant number of connections are opened and closed rapidly.
This problem is very difficult to reproduce if you are pooling the SqlConnection class. This is the default mode of operation. The problem has only been reported when using the SqlConnection class in Microsoft ASP.NET in a high stress environment.

Modification Type:MajorLast Reviewed:4/7/2006
Keywords:kbQFE KBHotfixServer kbbug kbfix KB323696