現象
8 月プレビューの品質ロールアップまたは2018 年 9 月 11日.NET Framework の更新をインストールした後、SqlConnection のインスタンス化は例外をスローできます。
SqlConnection のコンス トラクターの使用は、次のようなスタック トレースにつながります。
System.Runtime.Serialization.SerializationException System.AppDomain.get_Evidence() で System.AppDomain.get_Evidence() で System.Configuration.ClientConfigPaths.GetEvidenceInfo に (アプリケーション ドメインのアプリケーション ドメイン、exePath の文字列、文字列と型名) System.Configuration.ClientConfigPaths.GetTypeAndHashSuffix (アプリケーション ドメインのアプリケーション ドメイン、文字列 exePath) で で System.Configuration.ClientConfigPaths.ctor (exePath の文字列、ブール値の includeUserConfig) System.Configuration.ClientConfigPaths.GetPaths (exePath の文字列、ブール値の includeUserConfig) で System.Configuration.ClientConfigurationHost.RequireCompleteInit (IInternalConfigRecord レコード) で System.Configuration.BaseConfigurationRecord.GetSectionRecursive (configKey、ブール型の getLkg、ブール値の checkPermission、ブール型の getRuntimeObject、ブール値の requestIsHere では、文字列のオブジェクトとその結果、オブジェクトと resultRuntimeObject) System.Configuration.BaseConfigurationRecord.GetSection (文字列の configKey) で System.Configuration.ConfigurationManager.GetSection (文字列の sectionName) で で System.Data.SqlClient.SqlConnection.cctor()
回避策
回避策 1
アプリケーションの App.Config ファイルの configSection で次の行を追加します。
<section name="SqlColumnEncryptionEnclaveProviders" type="System.Data.SqlClient.SqlColumnEncryptionEnclaveProviderConfigurationSection, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
メモアプリケーションには、app.config ファイルが含まれていないを作成し、configSection でこの情報を格納する app.config ファイルを配置することをお勧めします。
1 の回避策が機能しない場合は、回避策 2 をしてみてください。
回避策 2
論理呼び出しコンテキストに追加されたすべてのオブジェクトの前に実行したアプリケーション ドメイン内の場所を特定します。ConfigurationManager にすべての構成ファイルに存在しないセクションをロードしようとするを強制的にコードを追加します。次に例を示します。
System.Configuration.ConfigurationManager.GetSection("SectionNameThatDoesNotExistInAnyConfigurationFile");
この問題の詳細については、GitHub の資料を参照してくださいの軽減: アプリケーション ドメイン間でオブジェクトの逆シリアル化。
状態
マイクロソフトでは、この問題を現在調査中で、今後のリリースに更新プログラムが提供されます。