Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op: .NET Framework
.NET
Standard
Met de AppContext-klasse kan SqlClient nieuwe functionaliteit bieden terwijl bellers die afhankelijk zijn van het vorige gedrag blijven ondersteunen. Gebruikers kunnen zich afmelden voor een wijziging in het gedrag door specifieke AppContext-switches in te stellen.
Gedrag voor het afkappen van decimalen inschakelen
Van toepassing op: .NET Framework; .NET; .NET Standard
Vanaf Microsoft.Data.SqlClient 2.0 worden decimale gegevens standaard afgerond, zoals wordt gedaan door SQL Server. Als u het vorige gedrag van afkapping wilt inschakelen, kunt u de AppContext-switch Switch.Microsoft.Data.SqlClient.TruncateScaledDecimaltrue instellen op bij het opstarten van de toepassing:
AppContext.SetSwitch("Switch.Microsoft.Data.SqlClient.TruncateScaledDecimal", true);
Beheerde netwerken inschakelen in Windows
Van toepassing op: .NET; .NET Standard
(Beschikbaar vanaf versie 2.0)
In Windows maakt SqlClient standaard gebruik van een systeemeigen implementatie van de SNI-netwerkinterface. Als u het gebruik van een beheerde SNI-implementatie wilt inschakelen, kunt u de AppContext-switch Switch.Microsoft.Data.SqlClient.UseManagedNetworkingOnWindowstrue instellen op bij het opstarten van de toepassing:
AppContext.SetSwitch("Switch.Microsoft.Data.SqlClient.UseManagedNetworkingOnWindows", true);
Met deze schakeloptie schakelt u het gedrag van het stuurprogramma in om een beheerde netwerk implementatie te gebruiken in .NET Core 2.1+ en .NET Standard 2.0+-projecten in Windows, waardoor alle afhankelijkheden van systeemeigen bibliotheken voor de Microsoft.Data.SqlClient-bibliotheek worden geëlimineerd. Het is alleen bedoeld voor test- en foutopsporingsdoeleinden.
Opmerking
Er zijn enkele bekende verschillen in vergelijking met de systeemeigen implementatie. De beheerde implementatie biedt bijvoorbeeld geen ondersteuning voor Windows-verificatie zonder domein.
Transparante NETWERK-IP-resolutie uitschakelen
Van toepassing op: .NET Framework
Transparent Network IP Resolution (TNIR) is een revisie van de bestaande MultiSubnetFailover-functie. TNIR is van invloed op de verbindingsreeks van het stuurprogramma in het geval dat het eerste opgeloste IP-adres van de hostnaam niet reageert en er meerdere IP-adressen zijn gekoppeld aan de hostnaam. TNIR communiceert met MultiSubnetFailover om de volgende drie verbindingsreeksen te bieden:
- 0: Er wordt één IP-adres geprobeerd, gevolgd door alle IP-adressen parallel
- 1: Alle IP-adressen worden parallel geprobeerd
- 2: Alle IP-adressen worden na elkaar geprobeerd
| TransparentNetworkIPResolution | MultiSubnetFailover | Gedrag |
|---|---|---|
| Klopt | Klopt | 1 |
| Klopt | Onwaar | 0 |
| Onwaar | Klopt | 1 |
| Onwaar | Onwaar | 2 |
TransparentNetworkIPResolution is standaard ingeschakeld. MultiSubnetFailover is standaard uitgeschakeld. Als u TNIR wilt uitschakelen, kunt u de AppContext-switch Switch.Microsoft.Data.SqlClient.DisableTNIRByDefaultInConnectionStringtrue instellen op bij het opstarten van de toepassing:
AppContext.SetSwitch("Switch.Microsoft.Data.SqlClient.DisableTNIRByDefaultInConnectionString", true);
Zie de documentatie voor de eigenschap SqlConnection.ConnectionString voor meer informatie over het instellen van deze eigenschappen.
Een minimale time-out inschakelen tijdens het aanmelden
Van toepassing op: .NET Framework; .NET; .NET Standard
Als u wilt voorkomen dat een aanmeldingspoging voor onbepaalde tijd wacht, kunt u de AppContext-switch Switch.Microsoft.Data.SqlClient.UseOneSecFloorInTimeoutCalculationDuringLogintrue instellen op het opstarten van de toepassing:
AppContext.SetSwitch("Switch.Microsoft.Data.SqlClient.UseOneSecFloorInTimeoutCalculationDuringLogin", false);
Blokkerend gedrag van ReadAsync uitschakelen
Van toepassing op: .NET Framework; .NET; .NET Standard
Vanaf versie 3.0 wordt ReadAsync asynchroon uitgevoerd. In eerdere versies wordt ReadAsync synchroon uitgevoerd en wordt de aanroepende thread op .NET Framework geblokkeerd. Als u dit blokkerende gedrag wilt beheren, kunt u de AppContext-switch Switch.Microsoft.Data.SqlClient.MakeReadAsyncBlocking instellen op true of false bij het opstarten van de toepassing:
AppContext.SetSwitch("Switch.Microsoft.Data.SqlClient.MakeReadAsyncBlocking", false);
Null-gedrag voor rowversion inschakelen
Van toepassing op: .NET Framework; .NET; .NET Standard
Vanaf versie 3.0 retourneert SqlDataReader een rijversie een waarde van null DBNull in plaats van een lege byte[]waarde. Als u het verouderde gedrag van het retourneren van een lege lege byte[]wilt inschakelen, schakelt u de AppContext-switch Switch.Microsoft.Data.SqlClient.LegacyRowVersionNullBehavior in bij het opstarten van de toepassing.
AppContext.SetSwitch("Switch.Microsoft.Data.SqlClient.LegacyRowVersionNullBehavior", true);
Onveilige TLS-waarschuwing onderdrukken
Van toepassing op: .NET Framework; .NET; .NET Standard
(Beschikbaar vanaf versie 4.0.1)
Wanneer u in de verbindingsreeks gebruikt Encrypt=false , wordt er een beveiligingswaarschuwing naar de console uitgevoerd als de TLS-versie 1.2 of lager is. Deze waarschuwing kan worden onderdrukt door de volgende AppContext-switch in te schakelen bij het opstarten van de toepassing:
AppContext.SetSwitch("Switch.Microsoft.Data.SqlClient.SuppressInsecureTLSWarning", true);
Servergespecificeerde failoverpartner negeren
Van toepassing op: .NET Framework; .NET; .NET Standard
(Beschikbaar vanaf versie 5.1.8, 6.0.4 en 6.1.3)
Bij een failover heeft de door de server verstrekte informatie over de failoverpartner de voorkeur boven de door de verbindingsreeks verstrekte informatie over de failoverpartner. Schakel deze AppContext-switch in bij het opstarten van de toepassing om informatie van de failoverpartner die is opgegeven door de server te negeren en alleen de informatie van de verbindingsreeks te gebruiken.
AppContext.SetSwitch("Switch.Microsoft.Data.SqlClient.IgnoreServerProvidedFailoverPartner", true);