Triệu chứng
Sau khi bạn cài đặt Xem trước ngày chất lượng tổng hợp hoặc 11 tháng 2018, bản Cập Nhật .NET Framework, instantiation SqlConnection có thể ném một ngoại lệ.
Sử dụng xây dựng SqlConnection có thể dẫn đến một dấu vết xếp chồng giống như sau:
System.Runtime.Serialization.SerializationException tại System.AppDomain.get_Evidence() tại System.AppDomain.get_Evidence() tại System.Configuration.ClientConfigPaths.GetEvidenceInfo (AppDomain appDomain, Chuỗi exePath, Chuỗi & typeName) tại System.Configuration.ClientConfigPaths.GetTypeAndHashSuffix (AppDomain appDomain, Chuỗi exePath) tại System.Configuration.ClientConfigPaths... Victor (chuỗi exePath, Boolean includeUserConfig) tại System.Configuration.ClientConfigPaths.GetPaths (chuỗi exePath, Boolean includeUserConfig) tại System.Configuration.ClientConfigurationHost.RequireCompleteInit (IInternalConfigRecord hồ sơ) tại System.Configuration.BaseConfigurationRecord.GetSectionRecursive (chuỗi configKey Boolean getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, đối tượng và kết quả, đối tượng & resultRuntimeObject) tại System.Configuration.BaseConfigurationRecord.GetSection (chuỗi configKey) tại System.Configuration.ConfigurationManager.GetSection (chuỗi sectionName) tại System.Data.SqlClient.SqlConnection... cctor()
Cách giải quyết
Giải pháp 1
Thêm dòng sau trong configSection file App.Config của ứng dụng:
<section name="SqlColumnEncryptionEnclaveProviders" type="System.Data.SqlClient.SqlColumnEncryptionEnclaveProviderConfigurationSection, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
Chú ý Nếu ứng dụng của bạn không có tệp app.config, chúng tôi khuyên bạn nên tạo tệp app.config chứa thông tin này trong phần configSection triển khai.
Nếu giải pháp 1 không hoạt động, hãy thử giải pháp 2.
Giải pháp 2
Xác định nơi miền ứng dụng chạy trước khi bất kỳ đối tượng đã được thêm vào bối cảnh gọi hợp lý. Thêm mã lực ConfigurationManager để tải một phần không có trong bất kỳ tập tin cấu hình. Ví dụ:
System.Configuration.ConfigurationManager.GetSection("SectionNameThatDoesNotExistInAnyConfigurationFile");
Để biết thêm thông tin về vấn đề này xem bài viết GitHub thiểu: Deserialization vật qua ứng dụng miền.
Trạng thái
Microsoft đang nghiên cứu vấn đề này và sẽ cung cấp bản Cập Nhật trong phiên bản phát hành sắp tới.