徵狀
年 8 月預覽的品質彙總套件或2018 年 9 月 11,.NET Framework 更新安裝之後,典型的執行個體化可以擲回例外狀況。
使用典型的建構函式可能會導致堆疊追蹤,如下所示:
System.Runtime.Serialization.SerializationException 在 System.AppDomain.get_Evidence() 在 System.AppDomain.get_Evidence() 在 System.Configuration.ClientConfigPaths.GetEvidenceInfo (AppDomain appDomain,字串 exePath 字串和 typeName) 在 System.Configuration.ClientConfigPaths.GetTypeAndHashSuffix (AppDomain appDomain,字串 exePath) 在 System.Configuration.ClientConfigPaths..ctor (字串 exePath,則為 True 的 includeUserConfig) 在 System.Configuration.ClientConfigPaths.GetPaths (exePath 字串,則為 True 的 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
ConfigSection 的應用程式的 App.Config 檔案中加入下列行:
<section name="SqlColumnEncryptionEnclaveProviders" type="System.Data.SqlClient.SqlColumnEncryptionEnclaveProviderConfigurationSection, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
附註如果您的應用程式不會包含 app.config 檔案,我們建議您建立並部署 app.config 檔案,含有在 configSection 中的這個資訊。
如果因應措施 1 無法運作,請嘗試因應措施 2。
因應措施 2
識別任何物件已加入至邏輯呼叫內容前所執行的應用程式定義域中的一個位置。加入程式碼強制嘗試載入不存在任何組態檔中區段的 ConfigurationManager。例如:
System.Configuration.ConfigurationManager.GetSection("SectionNameThatDoesNotExistInAnyConfigurationFile");
如需有關這個問題,請參閱 GitHub 文件緩和措施: 在應用程式定義域的物件還原序列化。
狀態
Microsoft 研究這個問題,並且會提供在即將推出的版本更新。