Symptomy
Po zainstalowaniu Sierpnia Podgląd jakości z pakietu zbiorczego lub zaktualizować.NET Framework 11 września 2018wystąpienia SqlConnection można zgłosić wyjątek.
Korzystanie z konstruktora SqlConnection może prowadzić do śledzenia stosu, podobny do następującego:
System.Runtime.Serialization.SerializationException o System.AppDomain.get_Evidence() o System.AppDomain.get_Evidence() w System.Configuration.ClientConfigPaths.GetEvidenceInfo (appDomain AppDomain, exePath ciąg, ciąg & typeName) w System.Configuration.ClientConfigPaths.GetTypeAndHashSuffix (AppDomain appDomain, ciąg exePath) w System.Configuration.ClientConfigPaths... Konstruktor (String exePath, Boolean includeUserConfig) w System.Configuration.ClientConfigPaths.GetPaths (String exePath, Boolean includeUserConfig) w System.Configuration.ClientConfigurationHost.RequireCompleteInit (zapis IInternalConfigRecord) w System.Configuration.BaseConfigurationRecord.GetSectionRecursive (String, configKey, getLkg typu Boolean, Boolean checkPermission, Boolean getRuntimeObject, requestIsHere typu Boolean, obiekt i wynik, obiekt & resultRuntimeObject) w System.Configuration.BaseConfigurationRecord.GetSection (ciąg configKey) w System.Configuration.ConfigurationManager.GetSection (sectionName ciąg) w System.Data.SqlClient.SqlConnection... cctor()
Obejście
Obejście 1
W configSection pliku App.Config aplikacji, należy dodać następujące wiersze:
<section name="SqlColumnEncryptionEnclaveProviders" type="System.Data.SqlClient.SqlColumnEncryptionEnclaveProviderConfigurationSection, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
Uwaga: Jeśli aplikacji nie zawiera pliku app.config, firma Microsoft zaleca tworzenie i wdrażanie pliku app.config, który zawiera te informacje w configSection.
Jeśli 1 obejście nie działa, spróbuj skorzystać z rozwiązania 2.
Obejście 2
Określ miejsce w domenie aplikacji, uruchamiany przed wszystkie obiekty zostały dodane do kontekstu logiczne połączenie. Dodaj kod, aby zmusić ConfigurationManager aby spróbować załadować sekcji, która nie istnieje w żadnych plików konfiguracji. Na przykład:
System.Configuration.ConfigurationManager.GetSection("SectionNameThatDoesNotExistInAnyConfigurationFile");
Aby uzyskać więcej informacji dotyczących tego problemu, zobacz artykuł GitHub łagodzenia: deserializacji obiektów między domenami aplikacji.
Stan
Firma Microsoft bada ten problem i zapewni aktualizację w przyszłej wersji.