Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy: .NET Framework
.NET
Standard
Klasa AppContext umożliwia programowi SqlClient udostępnianie nowych funkcji, a jednocześnie obsługę osób wywołujących, którzy zależą od poprzedniego zachowania. Użytkownicy mogą zrezygnować ze zmiany zachowania, ustawiając określone przełączniki AppContext.
Włączanie zachowania obcinania dziesiętnego
Dotyczy: .NET Framework; .NET; .NET Standard
Począwszy od microsoft.Data.SqlClient 2.0, dane dziesiętne są domyślnie zaokrąglane, podobnie jak w przypadku programu SQL Server. Aby włączyć poprzednie zachowanie obcinania, możesz ustawić przełącznik AppContext "Switch.Microsoft.Data.SqlClient.TruncateScaledDecimal" na true przy uruchamianiu aplikacji:
AppContext.SetSwitch("Switch.Microsoft.Data.SqlClient.TruncateScaledDecimal", true);
Włączanie sieci zarządzanej w systemie Windows
Dotyczy: .NET; .NET Standard
(Dostępne od wersji 2.0)
W systemie Windows program SqlClient domyślnie używa natywnej implementacji interfejsu sieciowego SNI. Aby włączyć korzystanie z zarządzanej implementacji SNI, możesz ustawić przełącznik AppContext "Switch.Microsoft.Data.SqlClient.UseManagedNetworkingOnWindows" na true start aplikacji:
AppContext.SetSwitch("Switch.Microsoft.Data.SqlClient.UseManagedNetworkingOnWindows", true);
Ten przełącznik przełącza zachowanie sterownika w celu korzystania z implementacji sieci zarządzanej w programach .NET Core 2.1+ i .NET Standard 2.0+ w systemie Windows, eliminując wszystkie zależności od bibliotek natywnych bibliotek bibliotek Microsoft.Data.SqlClient. Służy tylko do testowania i debugowania.
Uwaga / Notatka
Istnieją pewne znane różnice w porównaniu z implementacją natywną. Na przykład implementacja zarządzana nie obsługuje uwierzytelniania systemu Windows bez domeny.
Wyłączanie rozpoznawania adresów IP w przezroczystej sieci
Dotyczy: .NET Framework
Transparent Network IP Resolution (TNIR) to poprawka istniejącej funkcji MultiSubnetFailover. Funkcja TNIR wpływa na sekwencję połączeń sterownika w przypadku, gdy pierwszy rozpoznany adres IP nazwy hosta nie odpowiada i istnieje wiele adresów IP skojarzonych z nazwą hosta. Funkcja TNIR współdziała z usługą MultiSubnetFailover, aby zapewnić następujące trzy sekwencje połączeń:
- 0: Jeden adres IP jest podejmowana równolegle, a następnie wszystkie adresy IP
- 1. Wszystkie adresy IP są podejmowane równolegle
- 2: Wszystkie adresy IP są podejmowane po drugiej
| TransparentNetworkIPResolution | MultiSubnetFailover | Zachowanie |
|---|---|---|
| Prawda | Prawda | 1 |
| Prawda | Nieprawda | 0 |
| Nieprawda | Prawda | 1 |
| Nieprawda | Nieprawda | 2 |
Funkcja TransparentNetworkIPResolution jest domyślnie włączona. Funkcja MultiSubnetFailover jest domyślnie wyłączona. Aby wyłączyć funkcję TNIR, możesz ustawić przełącznik AppContext "Switch.Microsoft.Data.SqlClient.DisableTNIRByDefaultInConnectionString" na true wartość podczas uruchamiania aplikacji:
AppContext.SetSwitch("Switch.Microsoft.Data.SqlClient.DisableTNIRByDefaultInConnectionString", true);
Aby uzyskać więcej informacji na temat ustawiania tych właściwości, zobacz dokumentację właściwości SqlConnection.ConnectionString.
Włączanie minimalnego limitu czasu podczas logowania
Dotyczy: .NET Framework; .NET; .NET Standard
Aby zapobiec oczekiwaniu na próbę logowania przez czas nieokreślony, możesz ustawić przełącznik AppContext Switch.Microsoft.Data.SqlClient.UseOneSecFloorInTimeoutCalculationDuringLogin na true wartość podczas uruchamiania aplikacji:
AppContext.SetSwitch("Switch.Microsoft.Data.SqlClient.UseOneSecFloorInTimeoutCalculationDuringLogin", false);
Wyłączanie blokowania zachowania funkcji ReadAsync
Dotyczy: .NET Framework; .NET; .NET Standard
Począwszy od wersji 3.0, narzędzie ReadAsync jest uruchamiane asynchronicznie. Poprzednie wersje są uruchamiane synchronicznie i blokują wątek wywołujący w programie .NET Framework. Aby kontrolować to zachowanie blokujące, można ustawić przełącznik AppContext Switch.Microsoft.Data.SqlClient.MakeReadAsyncBlocking na true lub false podczas uruchamiania aplikacji:
AppContext.SetSwitch("Switch.Microsoft.Data.SqlClient.MakeReadAsyncBlocking", false);
Włączanie zachowania wartości null elementu rowversion
Dotyczy: .NET Framework; .NET; .NET Standard
Począwszy od wersji 3.0, gdy wierszversion ma wartość null, SqlDataReader zwraca DBNull wartość zamiast pustej byte[]. Aby włączyć starsze zachowanie zwracania pustego byte[]elementu , włącz przełącznik AppContext Switch.Microsoft.Data.SqlClient.LegacyRowVersionNullBehavior podczas uruchamiania aplikacji.
AppContext.SetSwitch("Switch.Microsoft.Data.SqlClient.LegacyRowVersionNullBehavior", true);
Pomijanie niezabezpieczonego ostrzeżenia protokołu TLS
Dotyczy: .NET Framework; .NET; .NET Standard
(Dostępne od wersji 4.0.1)
W przypadku używania Encrypt=false w parametrach połączenia ostrzeżenie o zabezpieczeniach jest wyświetlane w konsoli, jeśli wersja protokołu TLS jest 1.2 lub niższa. To ostrzeżenie można pominąć, włączając następujący przełącznik AppContext podczas uruchamiania aplikacji:
AppContext.SetSwitch("Switch.Microsoft.Data.SqlClient.SuppressInsecureTLSWarning", true);
Ignoruj dostarczonego partnera trybu failover serwera
Dotyczy: .NET Framework; .NET; .NET Standard
(Dostępne począwszy od wersji 5.1.8, 6.0.4 i 6.1.3)
Po przełączeniu na tryb failover, informacje o partnerze trybu failover udostępniane przez serwer są preferowane nad informacje o partnerze trybu failover zawarte w ciągu połączenia. Aby zignorować informacje o partnerze trybu failover dostarczone przez serwer i rozważyć tylko informacje o partnerze trybu failover podane w parametrach połączenia, włącz ten przełącznik AppContext podczas uruchamiania aplikacji:
AppContext.SetSwitch("Switch.Microsoft.Data.SqlClient.IgnoreServerProvidedFailoverPartner", true);