Applies To.NET Framework 4.6.2 .NET Framework 4.6.1 .NET Framework 4.6 .NET Framework 4.7 .NET Framework 4.7.1 .NET Framework 4.7.2

Проблемы

После установки Августа Предварительный просмотр качества свертки или 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 по устранению рисков: десериализации объектов между доменами приложений.

Статус

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

Нужна дополнительная помощь?

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.

В сообществах можно задавать вопросы и отвечать на них, отправлять отзывы и консультироваться с экспертами разных профилей.