Exceção de instanciação de SqlConnection no .NET 4.6 e versão posterior após as atualizações de agosto e setembro de 2018 do .NET Framework

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.

Precisa de mais ajuda?

Expanda suas habilidades
Explore o treinamento
Obtenha novos recursos primeiro
Ingressar no Microsoft Insider

Estas informações foram úteis?

Obrigado por seus comentários!

Agradecemos pelos seus comentários! Parece que pode ser útil conectar você a um de nossos agentes de suporte do Office.

×