Hybrid Connection error with SQL Server: System.OverflowException: Arithmetic operation resulted in an overflow
Problem
If you are trying to use Azure Hybrid Connections to access SQL Server then be advised that an update on May 10, 2016 to .NET may cause connections to fail. When it fails you will see errors that look like this
Exception: System.Data.Entity.Core.EntityException: The underlying provider failed on Open. ---> System.OverflowException: Arithmetic operation resulted in an overflow. at System.Data.SqlClient.TdsParser.ConsumePreLoginHandshake(SqlAuthenticationMethod authType, Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity, Boolean& marsCapable, Boolean& fedAuthRequired)
or (64 bit Web app)
System.OverflowException: Array dimensions exceeded supported range, at System.Data.SqlClient.TdsParser.ConsumePreLoginHandshake
Workaround
UPDATE: The new version of Azure App Service Hybrid Connections is what you should use now: https://docs.microsoft.com/en-us/azure/app-service/app-service-hybrid-connections
Yes there still a fix scheduled but it is at least a couple of months out and the Classic Hybrid Connections are now deprecated.
We are working to update the Hybrid Connection Manager to fix this issue but in the meantime the problem can be worked around by following the instructions here: https://support.microsoft.com/en-us/kb/2643584 Again, this is a short term workaround until we can get the updated Hybrid Connection Manager released.
This is not an arbitrary advisement for all Hybrid Connection customers to follow. If your endpoint is working then do nothing. If your endpoint is an SQL Server and it’s working, then I assume you haven’t updated your OS and you will see things fail with your next OS update.
If it is broken after the updates on May 10 then apply the work around.
WARNING from the above kb article:
Not recommended We do not recommend that you use the following procedure to disable this security update. However, we provide this procedure for scenarios in which you may be using applications that are incompatible with this security update, which enables split SSL records for all applications.
It will be up to you to re-apply this update after the Hybrid Connection Manager is fixed. I will update this blog when the new Hybrid Connection Manager is available!
The instructions need to be followed on hosts running the Hybrid Connection Manager. The instructions for directly editing the registry are:
To add this schannel registry entry registry entry, follow these steps:
1.Click Start, click Run, type regedit in the Open box, and then click OK.
2.Locate and then click the following subkey in the registry:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SecurityProviders\SCHANNEL
3.On the Edit menu, point to New, and then click DWORD Value.
4.Type SendExtraRecord for the name of the DWORD value, and then press Enter.
5.Right-click SendExtraRecord, and then click Modify.
6.In the Value data box, type 2 to disable the split record in schannel, and then click OK.
7.Exit Registry Editor.
8. Restart the Azure Hybrid Connection Manager Service or reboot the machine the Azure Hybrid Connection Manager Service is installed on (see the security update to determine which is required, or reboot the machine to be safe)
Make sure that if you copy/paste the key name you don’t accidentally put a space in at the end.
Make sure you name the DWORD “SendExtraRecord”
Make sure the DWORD was set to 2.
Note
If this does not resolve the issue, please open a support case through your Azure Support Portal to engage us further!
Comments
- Anonymous
March 07, 2017
Was there ever any fix for the Hybrid Connection Manager? - Anonymous
March 27, 2017
It has been over a year now, any updates to the Hybrid Connection Manager? I am still encountering this issue. - Anonymous
March 31, 2017
is this fixed in GA release - Anonymous
April 03, 2017
As of Today, there is still no fix available. You need to still use the workaround for this Technology which is still in preview. - Anonymous
April 07, 2017
Any idea when the fix will be resolved? And if not, is there maybe a good alternative to Hybrid Connections for a save and easy connection to an on-premise database?- Anonymous
May 23, 2017
See the update at the top of the article. The new Hybrid Connections does not have this problem, so you can move to that.
- Anonymous