Συμπτώματα
Μετά την εγκατάσταση του Αυγούστου προεπισκόπηση της ποιότητας συνάθροισης ή 11 Σεπτεμβρίου 2018, .NET Framework ενημέρωση, δημιουργία παρουσίας του SqlConnection μπορεί να δημιουργήσει μια εξαίρεση.
Χρήση του SqlConnection κατασκευή μπορεί να οδηγήσει σε ένα ίχνος στοίβας που μοιάζει με το ακόλουθο:
System.Runtime.Serialization.SerializationException σε System.AppDomain.get_Evidence() σε System.AppDomain.get_Evidence() στο System.Configuration.ClientConfigPaths.GetEvidenceInfo (appDomain AppDomain, exePath συμβολοσειρά, συμβολοσειρά & typeName) στο System.Configuration.ClientConfigPaths.GetTypeAndHashSuffix (AppDomain appDomain, exePath συμβολοσειρά) στο System.Configuration.ClientConfigPaths... ctor (συμβολοσειρά exePath, Boolean includeUserConfig) στο System.Configuration.ClientConfigPaths.GetPaths (συμβολοσειρά exePath, Boolean includeUserConfig) στο System.Configuration.ClientConfigurationHost.RequireCompleteInit (IInternalConfigRecord εγγραφή) στο System.Configuration.BaseConfigurationRecord.GetSectionRecursive (συμβολοσειρά configKey, Boolean getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, αντικείμενο & αποτέλεσμα, αντικείμενο & resultRuntimeObject) στο System.Configuration.BaseConfigurationRecord.GetSection (συμβολοσειρά configKey) στο System.Configuration.ConfigurationManager.GetSection (συμβολοσειρά όνομα ενότητας) στο System.Data.SqlClient.SqlConnection... cctor()
Λύση
Εναλλακτικός τρόπος αντιμετώπισης 1
Προσθέστε τις παρακάτω γραμμές με το configSection από το αρχείο App.Config της εφαρμογής:
<section name="SqlColumnEncryptionEnclaveProviders" type="System.Data.SqlClient.SqlColumnEncryptionEnclaveProviderConfigurationSection, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
Σημείωση Εάν η εφαρμογή σας δεν περιλαμβάνει ένα αρχείο app.config, συνιστάται να δημιουργήσετε και να αναπτύξετε ένα αρχείο app.config που περιέχει αυτές τις πληροφορίες με το configSection.
Εάν δεν λειτουργεί ο εναλλακτικός τρόπος αντιμετώπισης 1, δοκιμάστε τη λύση 2.
Εναλλακτικός τρόπος αντιμετώπισης 2
Προσδιορίστε μια θέση στον τομέα εφαρμογών που εκτελείται πριν από οποιαδήποτε αντικείμενα έχουν προστεθεί στο περιβάλλον κλήσης λογική. Προσθήκη κώδικα για την επιβολή ConfigurationManager για να προσπαθήσετε να φορτώσετε μια ενότητα που δεν υπάρχει σε όλα τα αρχεία ρύθμισης παραμέτρων. Για παράδειγμα:
System.Configuration.ConfigurationManager.GetSection("SectionNameThatDoesNotExistInAnyConfigurationFile");
Για περισσότερες πληροφορίες σχετικά με αυτό το ζήτημα, ανατρέξτε στο άρθρο GitHub μετριασμού: αποσειριοποίηση των αντικειμένων σε άλλους τομείς εφαρμογής.
Κατάσταση
Η Microsoft ερευνά αυτό το ζήτημα και θα παρέχει μια ενημερωμένη έκδοση σε μια επερχόμενη έκδοση.