Problembeschreibung
Nach der Installation von August Vorschau der Qualität Rollup oder 11 September 2018.NET Framework aktualisierenkann SqlConnection Instanziierung eine Ausnahme auslösen.
Wie ein SqlConnection-Konstruktor führt zu einem Stack Trace, die der folgenden ähnelt:
System.Runtime.Serialization.SerializationException am System.AppDomain.get_Evidence() am System.AppDomain.get_Evidence() Bei System.Configuration.ClientConfigPaths.GetEvidenceInfo (AppDomain AppDomain Zeichenfolge ExePath String & TypeName) Bei System.Configuration.ClientConfigPaths.GetTypeAndHashSuffix (AppDomain AppDomain, Zeichenfolge ExePath) am System.Configuration.ClientConfigPaths... Ctor (ExePath String, Boolean IncludeUserConfig) Bei System.Configuration.ClientConfigPaths.GetPaths (ExePath String, Boolean IncludeUserConfig) Bei System.Configuration.ClientConfigurationHost.RequireCompleteInit (IInternalConfigRecord-Datensatz) Bei System.Configuration.BaseConfigurationRecord.GetSectionRecursive (String, ConfigKey, boolesche GetLkg boolesche CheckPermission, booleschen GetRuntimeObject, boolesche RequestIsHere Objekt & Ergebnis Objekt & ResultRuntimeObject) Bei System.Configuration.BaseConfigurationRecord.GetSection (String ConfigKey) Bei System.Configuration.ConfigurationManager.GetSection (String SectionName) am System.Data.SqlClient.SqlConnection... cctor()
Problemumgehung
Problemumgehung 1
Fügen Sie folgende Zeilen in der ConfigSection der App.Config-Datei der Anwendung:
<section name="SqlColumnEncryptionEnclaveProviders" type="System.Data.SqlClient.SqlColumnEncryptionEnclaveProviderConfigurationSection, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
Hinweis Wenn Ihre Anwendung eine app.config-Datei enthält, wird empfohlen, erstellen und Bereitstellen eine App, die diese Informationen in der ConfigSection.
Wenn Lösung 1 nicht funktioniert, versuchen Sie Abhilfe 2.
Problemumgehung 2
Identifizieren Sie eine Stelle in der Anwendungsdomäne ausgeführt wird, bevor der logischen Aufrufkontext Objekte hinzugefügt wurden. Fügen Sie Code zum Erzwingen ConfigurationManager versuchen, einen Abschnitt zu laden, der in Konfigurationsdateien vorhanden ist. Zum Beispiel:
System.Configuration.ConfigurationManager.GetSection("SectionNameThatDoesNotExistInAnyConfigurationFile");
Weitere Informationen zu diesem Problem finden Sie im Artikel GitHub zur Risikominderung: Deserialisierung Objekte in Anwendungsdomänen.
Status
Microsoft werden untersucht dieses Problem und ein Update in einer zukünftigen Version.