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