Исключение при создании экземпляра SqlConnection .NET 4.6 и позже после августа-сентября 2018 платформа.NET Framework обновлений

Применимо к: .NET Framework 4.6.NET Framework 4.6.1.NET Framework 4.6.2

Проблемы


После установки Августа Предварительный просмотр качества свертки или 11 сентября 2018, платформа.NET Framework обновлениеэкземпляра SqlConnection может создать исключение.

Использование конструктора SqlConnection может привести к трассировке стека, похожее на следующее:

Обходное решение


Временное решение 1

В configSection файла App.Config приложения добавьте следующие строки:

<section name="SqlColumnEncryptionEnclaveProviders"type="System.Data.SqlClient.SqlColumnEncryptionEnclaveProviderConfigurationSection,System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />

Примечание Если приложение не содержит файл app.config, рекомендуется создать и развернуть файл app.config, эта информация содержится в configSection.

Если способ 1 не работает, попробуйте способ 2.

Временное решение 2

Определите место в домене приложения, который будет выполняться перед любые объекты были добавлены в логическом контексте вызова. Добавьте код для принудительного ConfigurationManager для повторной загрузки раздел, который не существует в любом из файлов конфигурации. Например:

System.Configuration.ConfigurationManager.GetSection("SectionNameThatDoesNotExistInAnyConfigurationFile");

Дополнительные сведения об этой проблеме обратитесь к статье GitHub по устранению рисков: десериализации объектов между доменами приложений.

Статус


Корпорация Майкрософт работает над устранением этой проблемы и будет предоставлять обновления в готовящемся выпуске.