Applies To.NET Framework 4.6.2 .NET Framework 4.6.1 .NET Framework 4.6 .NET Framework 4.7 .NET Framework 4.7.1 .NET Framework 4.7.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 :

System.Runtime.Serialization.SerializationException    à System.AppDomain.get_Evidence()    à System.AppDomain.get_Evidence()    à System.Configuration.ClientConfigPaths.GetEvidenceInfo (AppDomain appDomain, exePath de chaîne, chaîne & typeName)    à System.Configuration.ClientConfigPaths.GetTypeAndHashSuffix (AppDomain appDomain, chaîne exePath)    à System.Configuration.ClientConfigPaths... constructeur (String exePath, Boolean includeUserConfig)    à System.Configuration.ClientConfigPaths.GetPaths (String exePath, Boolean includeUserConfig)    à System.Configuration.ClientConfigurationHost.RequireCompleteInit (enregistrement IInternalConfigRecord)    à System.Configuration.BaseConfigurationRecord.GetSectionRecursive (String configKey, getLkg de type Boolean, checkPermission Boolean, Boolean getRuntimeObject, Boolean requestIsHere, résultat, & objet objet & resultRuntimeObject)    à System.Configuration.BaseConfigurationRecord.GetSection (String configKey)    à System.Configuration.ConfigurationManager.GetSection (sectionName chaîne)    à System.Data.SqlClient.SqlConnection... cctor()

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.

Besoin d’aide ?

Vous voulez plus d’options ?

Explorez les avantages de l’abonnement, parcourez les cours de formation, découvrez comment sécuriser votre appareil, etc.

Les communautés vous permettent de poser des questions et d'y répondre, de donner vos commentaires et de bénéficier de l'avis d'experts aux connaissances approfondies.