Sintomi
Dopo aver installato l'Anteprima di agosto di Rollup di qualità o 11 settembre 2018, aggiornamento di.NET Framework, creazione di istanze di SqlConnection può generare un'eccezione.
Utilizzo di un costruttore SqlConnection può comportare un'analisi dello stack analogo al seguente:
SerializationException in System.AppDomain.get_Evidence() in System.AppDomain.get_Evidence() in System.Configuration.ClientConfigPaths.GetEvidenceInfo (AppDomain appDomain, String percorsoeseguibile, String & typeName) in System.Configuration.ClientConfigPaths.GetTypeAndHashSuffix (AppDomain appDomain, String percorsoeseguibile) in System.Configuration.ClientConfigPaths... costruttore (percorsoeseguibile String, Boolean includeUserConfig) in System.Configuration.ClientConfigPaths.GetPaths (stringa percorsoeseguibile, Boolean includeUserConfig) in System.Configuration.ClientConfigurationHost.RequireCompleteInit (IInternalConfigRecord record) in System.Configuration.BaseConfigurationRecord.GetSectionRecursive (String configKey, getLkg booleano, checkPermission Boolean, Boolean getRuntimeObject, requestIsHere booleano, risultati & oggetto oggetto & resultRuntimeObject) in System.Configuration.BaseConfigurationRecord.GetSection (String configKey) in System.Configuration.ConfigurationManager.GetSection (stringa sectionName) in corrispondenza di SqlConnection.. cctor()
Soluzione alternativa
Soluzione alternativa 1
Aggiungere le seguenti righe di configSection del file app. config dell'applicazione:
<section name="SqlColumnEncryptionEnclaveProviders" type="System.Data.SqlClient.SqlColumnEncryptionEnclaveProviderConfigurationSection, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
Nota Se l'applicazione non include un file app. config, si consiglia di creare e distribuire un file app. config che contiene queste informazioni di configSection.
Se la soluzione 1 non funziona, provare a soluzione 2.
Soluzione 2
Identificare una posizione nel dominio dell'applicazione da eseguire prima tutti gli oggetti sono stati aggiunti al contesto di chiamata logico. Aggiungere il codice per forzare ConfigurationManager per tentare di caricare una sezione che non esiste alcun file di configurazione. Per esempio:
System.Configuration.ConfigurationManager.GetSection("SectionNameThatDoesNotExistInAnyConfigurationFile");
Per ulteriori informazioni su questo problema, vedere l'articolo di GitHub attenuazione: deserializzazione di oggetti tra domini applicazione.
Stato
Microsoft sta lavorando il problema e fornirà un aggiornamento in una versione futura.