ข้ามไปที่เนื้อหาหลัก
การสนับสนุน
ลงชื่อเข้าใช้

SqlConnection สร้างอินสแตนซ์ข้อยกเว้น ใน.NET 4.6 และหลัง จากการปรับปรุงเดือนสิงหาคม 2018 กันยายน.NET Framework รุ่นที่ใหม่กว่า

อาการ

หลังจากที่คุณติดตั้งสิงหาคมแสดงตัวอย่างของคุณภาพรวบรวมหรือปรับปรุง.NET Framework 11 กันยายน 2018สร้างอินสแตนซ์ของ SqlConnection สามารถอยู่นอกกระบวนข้อยกเว้น

การใช้ตัวสร้าง SqlConnection อาจทำให้การติดตามสแต็คที่คล้ายกับต่อไปนี้:

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, 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

เพิ่มบรรทัดต่อไปนี้ใน 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 กำลังทำการวิจัยปัญหานี้ และจะให้มีการปรับปรุงในรุ่นกำลังมาถึง

ต้องการความช่วยเหลือเพิ่มเติมหรือไม่

ขยายทักษะของคุณ
สำรวจการฝึกอบรม
รับฟีเจอร์ใหม่ก่อนใคร
เข้าร่วม Microsoft Insider

ข้อมูลนี้เป็นประโยชน์หรือไม่

ขอบคุณสำหรับคำติชมของคุณ

ขอขอบคุณสำหรับคำติชมของคุณ! เราคิดว่าอาจเป็นประโยชน์ที่จะให้คุณได้ติดต่อกับหนึ่งในตัวแทนฝ่ายสนับสนุน Office ของเรา

×