Проблемы
После установки Августа Предварительный просмотр качества свертки или 11 сентября 2018, платформа.NET Framework обновлениеэкземпляра SqlConnection может создать исключение.
Использование конструктора SqlConnection может привести к трассировке стека, похожее на следующее:
System.Runtime.Serialization.SerializationException в System.AppDomain.get_Evidence() в System.AppDomain.get_Evidence() в System.Configuration.ClientConfigPaths.GetEvidenceInfo (домен приложения appDomain, exePath строка, строка & typeName) в System.Configuration.ClientConfigPaths.GetTypeAndHashSuffix (домен приложения AppDomain, exePath строка) в System.Configuration.ClientConfigPaths... ctor (exePath строка, логическое includeUserConfig) в System.Configuration.ClientConfigPaths.GetPaths (exePath строка, логическое includeUserConfig) в System.Configuration.ClientConfigurationHost.RequireCompleteInit (IInternalConfigRecord записи) в System.Configuration.BaseConfigurationRecord.GetSectionRecursive (строка, configKey, getLkg типа Boolean, логическое checkPermission, логическое getRuntimeObject, логическое requestIsHere объекта и результатов, объекты и resultRuntimeObject) в System.Configuration.BaseConfigurationRecord.GetSection (строка configKey) в System.Configuration.ConfigurationManager.GetSection (строка sectionName) в System.Data.SqlClient.SqlConnection... cctor()
Обходное решение
Временное решение 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 по устранению рисков: десериализации объектов между доменами приложений.
Статус
Корпорация Майкрософт работает над устранением этой проблемы и будет предоставлять обновления в готовящемся выпуске.