Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro: .NET Framework
.NET
Standard
Třída AppContext umožňuje SqlClient poskytovat nové funkce a zároveň pokračovat v podpoře volajících, kteří závisejí na předchozím chování. Uživatelé se můžou odhlásit ze změny chování nastavením konkrétních přepínačů AppContext.
Povolení chování při zkrácení desetinných míst
Platí pro: .NET Framework; .NET; .NET Standard
Počínaje Microsoft.Data.SqlClient 2.0 se desetinná data ve výchozím nastavení zaokrouhlují, jak to dělá SQL Server. Pokud chcete povolit předchozí chování zkrácení, můžete nastavit přepínač AppContext Switch.Microsoft.Data.SqlClient.TruncateScaledDecimal při true spuštění aplikace:
AppContext.SetSwitch("Switch.Microsoft.Data.SqlClient.TruncateScaledDecimal", true);
Povolení spravovaných sítí ve Windows
Týká se: .NET; .NET Standard
(Dostupné od verze 2.0)
Ve Windows sqlClient ve výchozím nastavení používá nativní implementaci síťového rozhraní SNI. Pokud chcete povolit použití spravované implementace SNI, můžete nastavit přepínač AppContext Switch.Microsoft.Data.SqlClient.UseManagedNetworkingOnWindows na true spuštění aplikace:
AppContext.SetSwitch("Switch.Microsoft.Data.SqlClient.UseManagedNetworkingOnWindows", true);
Tento přepínač přepne chování ovladače tak, aby používal spravovanou síťovou implementaci v projektech .NET Core 2.1+ a .NET Standard 2.0+ ve Windows a eliminuje všechny závislosti na nativních knihovnách knihovny Microsoft.Data.SqlClient. Slouží pouze pro účely testování a ladění.
Poznámka:
V porovnání s nativní implementací existují některé známé rozdíly. Spravovaná implementace například nepodporuje ověřování systému Windows bez domény.
Zakázání transparentního překladu IP adres sítě
Platí pro: .NET Framework
Transparentní překlad IP adres (TNIR) je revize stávající funkce MultiSubnetFailover. TNIR ovlivňuje posloupnost připojení ovladače v případě, že první vyřešená IP adresa názvu hostitele nereaguje a k názvu hostitele je přidružených více IP adres. TNIR komunikuje s MultiSubnetFailover a poskytuje následující tři sekvence připojení:
- 0: Jedna IP adresa se pokusí paralelně sledovat všechny IP adresy.
- 1: Všechny IP adresy se pokouší paralelně
- 2: Všechny IP adresy se pokusí o jednu po druhé.
| TransparentNetworkIPResolution | MultiSubnetFailover | Chování |
|---|---|---|
| Pravdivé | Pravdivé | 1 |
| Pravdivé | Nepravda | 0 |
| Nepravda | Pravdivé | 1 |
| Nepravda | Nepravda | 2 |
Funkce TransparentNetworkIPResolution je ve výchozím nastavení povolená. Funkce MultiSubnetFailover je ve výchozím nastavení zakázaná. Chcete-li zakázat TNIR, můžete nastavit přepínač AppContext Switch.Microsoft.Data.SqlClient.DisableTNIRByDefaultInConnectionString při true spuštění aplikace:
AppContext.SetSwitch("Switch.Microsoft.Data.SqlClient.DisableTNIRByDefaultInConnectionString", true);
Další informace o nastavení těchto vlastností naleznete v dokumentaci sqlConnection.ConnectionString Vlastnost.
Povolení minimálního časového limitu během přihlášení
Platí pro: .NET Framework; .NET; .NET Standard
Pokud chcete zabránit neomezenému čekání pokusu o přihlášení, můžete nastavit přepínač AppContext Switch.Microsoft.Data.SqlClient.UseOneSecFloorInTimeoutCalculationDuringLogin na true spuštění aplikace:
AppContext.SetSwitch("Switch.Microsoft.Data.SqlClient.UseOneSecFloorInTimeoutCalculationDuringLogin", false);
Zakázání blokujícího chování readAsync
Platí pro: .NET Framework; .NET; .NET Standard
Počínaje verzí 3.0 běží ReadAsync async. Předchozí verze spouští synchronně ReadAsync a blokují volající vlákno v rozhraní .NET Framework. Pokud chcete řídit toto chování blokování, můžete nastavit přepínač AppContext Switch.Microsoft.Data.SqlClient.MakeReadAsyncBlockingtrue nebo false při spuštění aplikace:
AppContext.SetSwitch("Switch.Microsoft.Data.SqlClient.MakeReadAsyncBlocking", false);
Povolení chování hodnoty null pro rowversion
Platí pro: .NET Framework; .NET; .NET Standard
Počínaje verzí 3.0, pokud rowversion má hodnotu null, SqlDataReader vrátí DBNull hodnotu místo prázdné byte[]. Chcete-li povolit starší chování vrácení prázdné byte[], povolte přepínač AppContext Switch.Microsoft.Data.SqlClient.LegacyRowVersionNullBehavior při spuštění aplikace.
AppContext.SetSwitch("Switch.Microsoft.Data.SqlClient.LegacyRowVersionNullBehavior", true);
Potlačení nezabezpečeného upozornění protokolu TLS
Platí pro: .NET Framework; .NET; .NET Standard
(Dostupné od verze 4.0.1)
Při použití Encrypt=false v připojovacím řetězci se do konzoly zobrazí upozornění zabezpečení, pokud je verze protokolu TLS 1.2 nebo nižší. Toto upozornění lze potlačit povolením následujícího přepínače AppContext při spuštění aplikace:
AppContext.SetSwitch("Switch.Microsoft.Data.SqlClient.SuppressInsecureTLSWarning", true);
Ignorovat partnera pro převzetí služeb při selhání poskytnutého serverem
Platí pro: .NET Framework; .NET; .NET Standard
(Dostupné od verzí 5.1.8, 6.0.4 a 6.1.3)
Při převzetí služeb při selhání jsou informace o partnerovi převzetí služeb při selhání poskytované serverem upřednostňované před informacemi o partnerovi převzetí služeb při selhání poskytnuté v připojovacím řetězci. Pokud chcete ignorovat informace o partnerovi převzetí služeb při selhání poskytované serverem a zvažovat pouze informace o partnerovi převzetí služeb při selhání poskytnuté v připojovacím řetězci, povolte tento přepínač AppContext při startu aplikace:
AppContext.SetSwitch("Switch.Microsoft.Data.SqlClient.IgnoreServerProvidedFailoverPartner", true);