Exception de l’instanciation de SqlConnection sur .NET 4.6 et les versions ultérieures après les mises à jour d’août-septembre 2018 pour .NET Framework

S’applique à : .NET Framework 4.6Microsoft .NET Framework 4.6.1Microsoft .NET Framework 4.6.2

Symptômes


Après avoir installé le Août aperçu de qualité Rollup ou le 11 septembre 2018, mise à jour de.NET Framework, l’instanciation de l’objet SqlConnection peut lever une exception.

Utilisation d’un constructeur SqlConnection peut conduire à une trace de pile semblable au suivant :

Solution de contournement


Solution de contournement 1

Ajoutez les lignes suivantes dans la configSection du fichier App.Config de l’application :

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

Remarque Si votre application n’inclut pas un fichier app.config, nous vous recommandons de créer et de déployer un fichier app.config qui contient ces informations dans la configSection.

Si la solution de contournement 1 ne fonctionne pas, essayez la solution 2.

Solution de contournement 2

Identifiez un emplacement dans le domaine d’application qui s’exécute avant que les objets ont été ajoutés au contexte d’appel logique. Ajoutez le code pour forcer ConfigurationManager pour tenter de charger une section qui n’existe pas dans les fichiers de configuration. Par exemple :

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

Pour plus d’informations sur ce problème, consultez l’article GitHub atténuation : la désérialisation des objets entre des domaines d’application.

Statut


Microsoft étudie ce problème et fournit une mise à jour dans une prochaine version.