Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: .NET Framework
.NET .NET
Standard
Класс AppContext позволяет SqlClient предоставлять новые функциональные возможности, продолжая поддерживать вызывающие объекты, которые зависят от предыдущего поведения. Пользователи могут отказаться от изменения в поведении, задав определенные параметры AppContext.
Включение усечения десятичных чисел
Область применения: .NET Framework; .NET; .NET Standard
Начиная с Microsoft.Data.SqlClient 2.0 десятичные данные округляются по умолчанию, как и в SQL Server. Чтобы включить предыдущее поведение усечения, при запуске приложения можно задать для параметра AppContext Switch.Microsoft.Data.SqlClient.TruncateScaledDecimal значение true.
AppContext.SetSwitch("Switch.Microsoft.Data.SqlClient.TruncateScaledDecimal", true);
Включение управляемых сетей в Windows
Область применения: .NET; .NET Standard
(Доступно начиная с версии 2.0)
В Windows SqlClient по умолчанию использует собственную реализацию сетевого интерфейса SNI. Чтобы разрешить использование управляемой реализации SNI, при запуске приложения можно задать для параметра AppContext Switch.Microsoft.Data.SqlClient.UseManagedNetworkingOnWindows значение true.
AppContext.SetSwitch("Switch.Microsoft.Data.SqlClient.UseManagedNetworkingOnWindows", true);
Этот параметр переключает поведение драйвера на использование управляемой сетевой реализации в .NET Core 2.1+ и .NET Standard 2.0+ в Windows, устраняя все зависимости от собственных библиотек для библиотек Microsoft.Data.SqlClient. Он предназначен только для тестирования и отладки.
Примечание.
При сравнении с собственной реализацией существуют некоторые известные различия. Например, управляемая реализация не поддерживает проверку подлинности Windows без домена.
Отключение разрешения IP-адресов прозрачной сети
Область применения: .NET Framework
Разрешение IP-адресов прозрачной сети (TNIR) является исправленной версией существующей функции MultiSubnetFailover. TNIR влияет на последовательность подключений драйвера, когда первый разрешенный IP-адрес имени узла не отвечает и имеется несколько IP-адресов, связанных с именем этого узла. TNIR взаимодействует с MultiSubnetFailover и поддерживает следующие три варианта последовательности подключений.
- 0: один IP-адрес пытается выполнить, а затем все IP-адреса параллельно
- 1. Все IP-адреса выполняются параллельно
- 2. Все IP-адреса пытаются один за другим
| TransparentNetworkIPResolution | MultiSubnetFailover | Поведение |
|---|---|---|
| Истина | Истина | 1 |
| Истина | Ложь | 0 |
| Ложь | Истина | 1 |
| Ложь | Ложь | 2 |
По умолчанию transparentNetworkIPResolution имеет значение true. Параметр MultiSubnetFailover отключен по умолчанию. Чтобы отключить TNIR, при запуске приложения можно задать для параметра AppContext Switch.Microsoft.Data.SqlClient.DisableTNIRByDefaultInConnectionString значение true.
AppContext.SetSwitch("Switch.Microsoft.Data.SqlClient.DisableTNIRByDefaultInConnectionString", true);
Дополнительные сведения об установке этих свойств см. в документации по свойству SqlConnection.ConnectionString.
Включение минимального времени ожидания при входе
Область применения: .NET Framework; .NET; .NET Standard
Чтобы предотвратить неограниченное время ожидания входа, при запуске приложения можно задать для параметра AppContext Switch.Microsoft.Data.SqlClient.UseOneSecFloorInTimeoutCalculationDuringLogin значение true.
AppContext.SetSwitch("Switch.Microsoft.Data.SqlClient.UseOneSecFloorInTimeoutCalculationDuringLogin", false);
Отключение блокирующего поведения ReadAsync
Область применения: .NET Framework; .NET; .NET Standard
Начиная с версии 3.0, ReadAsync выполняется асинхронно. Предыдущие версии запускают ReadAsync синхронно и блокируют вызывающий поток в платформа .NET Framework. Чтобы управлять этим поведением блокировки, можно задать переключатель AppContext Switch.Microsoft.Data.SqlClient.MakeReadAsyncBlocking или truefalse при запуске приложения:
AppContext.SetSwitch("Switch.Microsoft.Data.SqlClient.MakeReadAsyncBlocking", false);
Включение поведения при значении rowversion — NULL
Область применения: .NET Framework; .NET; .NET Standard
Начиная с версии 3.0, если rowversion имеет значение NULL, SqlDataReader возвращает значение DBNull вместо пустого byte[]. Чтобы включить предыдущее поведение, когда возвращался пустой byte[], включите переключатель AppContext Switch.Microsoft.Data.SqlClient.LegacyRowVersionNullBehavior при запуске приложения.
AppContext.SetSwitch("Switch.Microsoft.Data.SqlClient.LegacyRowVersionNullBehavior", true);
Скрытие предупреждения о небезопасном протоколе TLS
Область применения: .NET Framework; .NET; .NET Standard
(Доступно начиная с версии 4.0.1)
При использовании Encrypt=false в строке подключения в консоль выводится предупреждение безопасности, если используется TLS 1.2 или более ранней версии. Это предупреждение можно скрыть, включив следующий параметр AppContext при запуске приложения:
AppContext.SetSwitch("Switch.Microsoft.Data.SqlClient.SuppressInsecureTLSWarning", true);
Игнорировать резервный партнер, предоставленный сервером
Область применения: .NET Framework; .NET; .NET Standard
(Доступно начиная с версий 5.1.8, 6.0.4 и 6.1.3)
После переключения при отказе информация о партнере переключения при отказе, предоставляемая сервером, имеет приоритет над информацией о партнере переключения при отказе, указанной в строке подключения. Чтобы при запуске приложения игнорировать сведения о партнере по отработке отказа, предоставляемые сервером, и учитывать только сведения о партнере отработки отказа, предоставленные в строке подключения, включите этот переключатель AppContext:
AppContext.SetSwitch("Switch.Microsoft.Data.SqlClient.IgnoreServerProvidedFailoverPartner", true);