Symptomen
Na de installatie van de Augustus Preview van kwaliteit updatepakket of bijwerken van 11 September 2018, .NET Frameworkkunt instantiëren van SqlConnection genereert een uitzondering.
Gebruik van een constructor SqlConnection kan leiden tot een stacktrace met de volgende strekking weergegeven:
System.Runtime.Serialization.SerializationException op System.AppDomain.get_Evidence() op System.AppDomain.get_Evidence() op System.Configuration.ClientConfigPaths.GetEvidenceInfo (AppDomain appDomain, String exePath, String & typeName) op System.Configuration.ClientConfigPaths.GetTypeAndHashSuffix (AppDomain appDomain, String exePath) op System.Configuration.ClientConfigPaths... ctor (String exePath, Boolean includeUserConfig) op System.Configuration.ClientConfigPaths.GetPaths (String exePath, Boolean includeUserConfig) bij System.Configuration.ClientConfigurationHost.RequireCompleteInit (IInternalConfigRecord-record) op System.Configuration.BaseConfigurationRecord.GetSectionRecursive (String configKey, Boolean getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, Object en resultaat, Object- en resultRuntimeObject) op System.Configuration.BaseConfigurationRecord.GetSection (String configKey) op System.Configuration.ConfigurationManager.GetSection (String sectienaam) op System.Data.SqlClient.SqlConnection... cctor()
Workaround
Tijdelijke oplossing 1
Voeg de volgende regels in de configSection van het App.Config bestand van de toepassing:
<section name="SqlColumnEncryptionEnclaveProviders" type="System.Data.SqlClient.SqlColumnEncryptionEnclaveProviderConfigurationSection, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
Opmerking Als uw toepassing niet een app.config bestand bevat, wordt aangeraden dat u maakt en implementeert een app.config bestand met deze informatie in de configSection.
Als methode 1 niet werkt, probeert u methode 2.
Tijdelijke oplossing 2
Een plaats in het app-domein dat wordt uitgevoerd voordat alle objecten die zijn toegevoegd aan de context van de logische oproep identificeren. Code toevoegen om te forceren ConfigurationManager probeert te laden van een sectie die niet in de configuratiebestanden bestaat. Bijvoorbeeld:
System.Configuration.ConfigurationManager.GetSection("SectionNameThatDoesNotExistInAnyConfigurationFile");
Zie voor meer informatie over dit probleem artikel GitHub beperking: deserialisatie van objecten tussen domeinen app.
Status
Microsoft zal is dit probleem onderzocht en een update in een toekomstige versie.