Excepção de Instanciação de SqlConnection no .NET 4.6 e posterior depois de actualizações de Agosto-Setembro 2018 .NET Framework

Aplica-se a: .NET Framework 4.6.NET Framework 4.6.1.NET Framework 4.6.2

Sintomas


Depois de instalar a Pré-visualização de Agosto de conjunto de qualidade ou a actualização do .NET Framework de 11 de Setembro, 2018,Instanciação do SqlConnection pode accionar uma excepção.

Utilização de um construtor SqlConnection pode conduzir a um rastreio de pilha semelhante à seguinte:

Solução


Solução 1

Adicione as seguintes linhas na configSection do ficheiro App da aplicação:

<section name="SqlColumnEncryptionEnclaveProviders"type="System.Data.SqlClient.SqlColumnEncryptionEnclaveProviderConfigurationSection,System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />

Nota Se a aplicação não incluir um ficheiro App, recomendamos que crie e implemente um ficheiro de App que contém estas informações no configSection.

Se a solução 1 não funcionar, tente 2 solução alternativa.

Solução 2

Identifica um local no domínio de aplicação que é executada antes de quaisquer objectos foram adicionados para o contexto da chamada lógico. Adicione código para forçar a ConfigurationManager para tentar carregar uma secção que não existe em quaisquer ficheiros de configuração. Por exemplo:

System.Configuration.ConfigurationManager.GetSection("SectionNameThatDoesNotExistInAnyConfigurationFile");

Para mais informações sobre este problema, consulte o artigo GitHub atenuação: anulação da serialização de objectos entre domínios de aplicação.

Estado


A Microsoft está a investigar este problema e irá fornecer uma actualização numa versão futura.