Sintomas
Depois de instalar a Visualização de agosto do acúmulo de qualidade ou atualização do dia 11 de setembro de 2018,.NET Framework, instanciação do SqlConnection pode lançar uma exceção.
Uso de um construtor SqlConnection pode levar a um rastreamento de pilha que é semelhante ao seguinte:
System.Runtime.Serialization.SerializationException em System.AppDomain.get_Evidence() em System.AppDomain.get_Evidence() no System.Configuration.ClientConfigPaths.GetEvidenceInfo (appDomain do AppDomain, exePath String, String & typeName) no System.Configuration.ClientConfigPaths.GetTypeAndHashSuffix (appDomain do AppDomain, String exePath) no System.Configuration.ClientConfigPaths... construtor (exePath String, Boolean includeUserConfig) no System.Configuration.ClientConfigPaths.GetPaths (exePath String, Boolean includeUserConfig) no System.Configuration.ClientConfigurationHost.RequireCompleteInit (registro de IInternalConfigRecord) no System.Configuration.BaseConfigurationRecord.GetSectionRecursive (String configKey, Boolean getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, resultado, & objeto objeto & resultRuntimeObject) a System.Configuration.BaseConfigurationRecord.GetSection (cadeia de caracteres configKey) no System.Configuration.ConfigurationManager.GetSection (String sectionName) no SqlConnection... cctor()
Solução alternativa
Solução Alternativa 1
Adicione as seguintes linhas no configSection do arquivo App. config do aplicativo:
<section name="SqlColumnEncryptionEnclaveProviders" type="System.Data.SqlClient.SqlColumnEncryptionEnclaveProviderConfigurationSection, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
Observação Se seu aplicativo não incluir um arquivo App. config, é recomendável que você crie e implante um arquivo App. config que contém as informações no configSection.
Se a solução alternativa 1 não funcionar, tente solução 2.
Solução alternativa 2
Identifica um local no domínio de aplicativo que é executado antes de todos os objetos foram adicionados ao contexto da chamada lógica. Adicione código para forçar ConfigurationManager para tentar carregar uma seção que não existe em algum arquivo de configuração. Por exemplo:
System.Configuration.ConfigurationManager.GetSection("SectionNameThatDoesNotExistInAnyConfigurationFile");
Para obter mais informações sobre esse problema, consulte o artigo do GitHub atenuação: desserialização de objetos nos domínios de aplicativo.
Status
A Microsoft está investigando esse problema e fornecerá uma atualização em uma versão futura.