How do I fix an error connecting to SQL Server: SSL Provider, error: 0 - The message received was unexpected or badly formatted

41,486

Solution 1

You are only left with the following options as instructed by Microsoft:

  • Uninstall offending LSP or BSP (i.e., Sophos Antivirus)
  • Uninstall .NET Framework 4.5.1 (therefore, VS 2013 will not work)
  • Install .NET Framework 4.5.2

Reference: http://support.microsoft.com/kb/2915689

Solution 2

After long and hard searching I found a solution, without reinstalling .NET framework 4.5.1. You can do the following:

Execute the command below under command line mode, with administrative privilege (haven't tried without admin privilege, might as well work)

netsh winsock reset

Then restart your computer. That fixed it like magic and you can keep .NET framework 4.5.1

Solution 3

For me, the solution was to remove this from the connection string

Encrypt=True;TrustServerCertificate=False;

Without it, it works but obviously without encryption.

Solution 4

  1. Uninstall .Net framework 4.5.1
  2. Uninstall and then re-install Visual Studio 2012/2013 (repair does not work)

It seems there is no fix for this with .Net 4.5.1. Uninstalling it broke VS 2012 for myself and VS2013 for my colleague - but after VS, everything seems to work. I would be willing to bet, that if I installed SQL Server Management Studio 2012 again, that would also work again against the SQL Server 2008SP1 installation, we have.

Others have reported the same fix in this thread

Share:
41,486
Kjensen
Author by

Kjensen

Updated on July 16, 2022

Comments

  • Kjensen
    Kjensen almost 2 years

    When connecting from my local dev box using Visual Studio 2012 (or 2013) against a SQL Server 2008R2 SP1, I get this message:

    A connection was successfully established with the server, but then an error occurred during the login process. (provider: SSL Provider, error: 0 - The message received was unexpected or badly formatted.)

    My version of .Net framework locally is 4.5.50938

    My colleague has the exact same problem. I also believe I had the problem earlier, before re-installing the pc, when I had SSMS 2012 installed, as that also relies on .Net framework 4, not .Net v2 as SSMS2008R2, which works fine. It would also make sense, that the internal data tooling in visual studio relies on .Net 4.

    The problem has not always been there, and I believe it was introduced when I first installed Visual Studio 2013 - and then again later after a reinstall, most likely after updating the .Net framework.

    The problem seems to me to be related to System.Data in this version of the .Net framework, when connecting against a SQL Server 2008R2 SP1.

    How can I fix this? Are there any known fixes, updates etc?

    Unfortunately updating SQL Server 2008R2SP1 is not currently an option.

    I have also searched for solutions, but have found nothing usable, so far. Here are a couple of links to other posts with similar issue:

    http://social.msdn.microsoft.com/Forums/en-US/ea2c470f-14ba-4864-8a39-1396f4e361e8/sqlconnection-now-failing-exception-when-connecting-to-remote-instance?forum=sqldataaccess

    http://www.sqlservercentral.com/Forums/Topic1529609-2799-1.aspx

    enter image description here

  • Joe.wang
    Joe.wang over 9 years
    It is a bug of 4.5.1. And I recommend to use .Net framework 4.5 with VS 2012. Because It seems the 4.5.1 is packed with VS 2013 installation. And I found VS 2013 can't compile the source code with the 4.5. So it is another reason for using VS 2012 instead of reinstalling VS 2013.
  • Sudhanshu Mishra
    Sudhanshu Mishra almost 9 years
    I would upvote this twice if I could! Saved a lot of time. How did you find this?
  • Lionet Chen
    Lionet Chen almost 9 years
    I have seen this solution at multiple sites. I couldn't remember which one was first but I believe the most authoritative answer is from this post (you have to click "Solution" link after the page is opened). I'll add it as reference. connect.microsoft.com/SQLServer/feedback/details/846396/…
  • Ondřej Dobečka
    Ondřej Dobečka over 2 years
    Adding just "Encrypt=False" was working