Síntomas
Después de instalar el Agosto vista previa de calidad paquete acumulativo de actualizaciones o el 11 de septiembre de 2018, actualización de.NET Framework, la creación de instancias de SqlConnection puede producir una excepción.
El uso de un constructor SqlConnection puede conducir a una traza de pila similar al siguiente:
System.Runtime.Serialization.SerializationException en System.AppDomain.get_Evidence() en System.AppDomain.get_Evidence() en System.Configuration.ClientConfigPaths.GetEvidenceInfo (AppDomain appDomain, exePath de cadena, String & typeName) en System.Configuration.ClientConfigPaths.GetTypeAndHashSuffix (appDomain de AppDomain, exePath de cadena) en System.Configuration.ClientConfigPaths.. ctor (exePath String, Boolean includeUserConfig) en System.Configuration.ClientConfigPaths.GetPaths (exePath String, Boolean includeUserConfig) en System.Configuration.ClientConfigurationHost.RequireCompleteInit (registro IInternalConfigRecord) en System.Configuration.BaseConfigurationRecord.GetSectionRecursive (String configKey, Boolean getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, resultado & objeto objeto & resultRuntimeObject) en System.Configuration.BaseConfigurationRecord.GetSection (String configKey) en System.Configuration.ConfigurationManager.GetSection (String sectionName) en System.Data.SqlClient.SqlConnection.. cctor()
Solución alternativa
Solución alternativa 1
Agregue las líneas siguientes en el configSection del archivo App.Config de la aplicación:
<section name="SqlColumnEncryptionEnclaveProviders" type="System.Data.SqlClient.SqlColumnEncryptionEnclaveProviderConfigurationSection, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
Nota Si la aplicación no incluye un archivo app.config, recomendamos que cree e implemente un archivo app.config que contiene esta información en el configSection.
Si no funciona la solución 1, pruebe la solución 2.
Solución alternativa 2
Identificar un lugar en el dominio de aplicación que se ejecuta antes de que los objetos se han agregado al contexto de llamada lógica. Agregue código para forzar ConfigurationManager para intentar cargar una sección que no existe en los archivos de configuración. Por ejemplo:
System.Configuration.ConfigurationManager.GetSection("SectionNameThatDoesNotExistInAnyConfigurationFile");
Para obtener más información acerca de este problema, consulte el artículo de GitHub mitigación: deserialización de objetos entre dominios de aplicación.
Estado
Microsoft está investigando este problema y proporcionará una actualización en un próximo lanzamiento.