-
Notifications
You must be signed in to change notification settings - Fork 322
Description
Issue moved from dotnet/maui#6859
Issue moved from dotnet/android#6990
- Please respond to @janseris.
From @janseris on Thursday, May 5, 2022 12:39:34 PM
Description
SQL Server - the connection was established but pre-login handshake failed when calling database via Entity Framework
**Microsoft.Data.SqlClient.SqlException:** 'A connection was successfully established with the server, but then an error occurred during the pre-login handshake. (provider: TCP Provider, error: 35 - An internal exception was caught)'
What does not help:
Encrypt=falsein connection stringEncrypt=truein connection stringEncrypt=false;TrustServerCertificate=true;in connection string
The same works without any issue on Android 9 and up (both emulator and real device).
Tested: works on Android 9 for all TLS settings: Native TLS 1.2+ and Managed TLS 1.0 and also for "no option".
The issue is in Debug (and thus probably also in Release) configuration.
Output for Android 5 (API 21):
Microsoft.Data.SqlClient.SqlException: 'A connection was successfully established with the server, but then an error occurred during the pre-login handshake. (provider: TCP Provider, error: 35 - An internal exception was caught)'
Output for Android 8, for all TLS configuration options: Native TLS 1.2+ and Managed TLS 1.0 and also for "no option".
[System.err] java.lang.IllegalStateException: Handshake has already been started
[System.err] at com.android.org.conscrypt.OpenSSLEngineImpl.beginHandshakeInternal(OpenSSLEngineImpl.java:335)
[System.err] at com.android.org.conscrypt.OpenSSLEngineImpl.beginHandshake(OpenSSLEngineImpl.java:325)
[System.err] at crc640ec207abc449b2ca.ShellSectionRenderer.n_onCreateView(Native Method)
[System.err] at crc640ec207abc449b2ca.ShellSectionRenderer.onCreateView(ShellSectionRenderer.java:42)
[System.err] at androidx.fragment.app.Fragment.performCreateView(Fragment.java:2995)
[System.err] at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:523)
[System.err] at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:261)
[System.err] at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:1840)
[System.err] at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1764)
[System.err] at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1701)
[System.err] at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:2849)
[System.err] at androidx.fragment.app.FragmentManager.dispatchViewCreated(FragmentManager.java:2777)
[System.err] at androidx.fragment.app.Fragment.performViewCreated(Fragment.java:3020)
[System.err] at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:551)
[System.err] at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:261)
[System.err] at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:1840)
[System.err] at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1764)
[System.err] at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1701)
[System.err] at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:2849)
[System.err] at androidx.fragment.app.FragmentManager.dispatchActivityCreated(FragmentManager.java:2784)
[System.err] at androidx.fragment.app.FragmentController.dispatchActivityCreated(FragmentController.java:262)
[System.err] at androidx.fragment.app.FragmentActivity.onStart(FragmentActivity.java:478)
[System.err] at androidx.appcompat.app.AppCompatActivity.onStart(AppCompatActivity.java:246)
[System.err] at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1333)
[System.err] at android.app.Activity.performStart(Activity.java:6992)
[System.err] at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2780)
[System.err] at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892)
[System.err] at android.app.ActivityThread.-wrap11(Unknown Source:0)
[System.err] at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593)
[System.err] at android.os.Handler.dispatchMessage(Handler.java:105)
[System.err] at android.os.Looper.loop(Looper.java:164)
[System.err] at android.app.ActivityThread.main(ActivityThread.java:6541)
[System.err] at java.lang.reflect.Method.invoke(Native Method)
[System.err] at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
[System.err] at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
**Microsoft.Data.SqlClient.SqlException:** 'A connection was successfully established with the server, but then an error occurred during the pre-login handshake. (provider: TCP Provider, error: 35 - An internal exception was caught)'
Similar issues:
dotnet/maui#3522
Steps to Reproduce
call database in a MAUI app with Android 8.1 or lower
Version with bug
Release Candidate 2 (current)
Last version that worked well
Unknown/Other
Affected platforms
Android
Affected platform versions
Android 8.1 and below
Did you find any workaround?
no
Relevant log output
No response
