Simptome
După ce instalați August Preview de calitate set sau 11 septembrie 2018, actualizarea .NET Framework, instanţierea de SqlConnection poate throw o excepție.
Utilizarea unui constructor SqlConnection poate duce la o stivei care seamănă cu următorul:
System.Runtime.Serialization.SerializationException la System.AppDomain.get_Evidence() la System.AppDomain.get_Evidence() la System.Configuration.ClientConfigPaths.GetEvidenceInfo (AppDomain appDomain, String exePath, String & typeName) la System.Configuration.ClientConfigPaths.GetTypeAndHashSuffix (AppDomain appDomain, String exePath) la System.Configuration.ClientConfigPaths... ctor (String exePath, Boolean includeUserConfig) la System.Configuration.ClientConfigPaths.GetPaths (String exePath, Boolean includeUserConfig) la System.Configuration.ClientConfigurationHost.RequireCompleteInit (IInternalConfigRecord înregistrare) la System.Configuration.BaseConfigurationRecord.GetSectionRecursive (String configKey, Boolean getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, rezultate, & obiect obiect & resultRuntimeObject) la System.Configuration.BaseConfigurationRecord.GetSection (String configKey) la System.Configuration.ConfigurationManager.GetSection (String sectionName) la System.Data.SqlClient.SqlConnection... cctor()
Soluție de evitare
Soluție 1
Adăugați următoarele linii în configSection fișierului App.Config aplicației:
<section name="SqlColumnEncryptionEnclaveProviders" type="System.Data.SqlClient.SqlColumnEncryptionEnclaveProviderConfigurationSection, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
Notă Dacă aplicația nu include un fișier app.config, se recomandă să creați și să implementați un fișier app.config care conține aceste informații în configSection.
Dacă soluția 1 nu funcționează, încercați soluția 2.
Soluție 2
Identificaţi un loc în domeniul de aplicații care se execută înainte de orice obiecte au fost adăugate la contextul logic apel. Adăugați cod pentru a impune ConfigurationManager pentru a încerca să încarce o secțiune care nu există în orice fișiere de configurare. De exemplu:
System.Configuration.ConfigurationManager.GetSection("SectionNameThatDoesNotExistInAnyConfigurationFile");
Pentru mai multe informații despre această problemă, consultați articolul GitHub afluxului: Deserialization de obiecte în domenii app.
Stare
Microsoft cercetează această problemă și va furniza o actualizare într-o versiune viitoare.