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

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.

Potrzebujesz dalszej pomocy?

Chcesz uzyskać więcej opcji?

Poznaj korzyści z subskrypcji, przeglądaj kursy szkoleniowe, dowiedz się, jak zabezpieczyć urządzenie i nie tylko.

Społeczności pomagają zadawać i odpowiadać na pytania, przekazywać opinie i słuchać ekspertów z bogatą wiedzą.