ข้ามไปที่เนื้อหาหลัก
การสนับสนุน
ลงชื่อเข้าใช้
ลงชื่อเข้าใช้ด้วย Microsoft
ลงชื่อเข้าใช้หรือสร้างบัญชี
สวัสดี
เลือกบัญชีอื่น
คุณมีหลายบัญชี
เลือกบัญชีที่คุณต้องการลงชื่อเข้าใช้

อาการ

หลังจากที่คุณติดตั้งแบบ 2018 กรกฎาคม.NET Framework ปลอดภัยและเปลี่นคุณภาพที่นำไปใช้กับ.NET Framework 4.6, 4.6.1 การ 4.6.2 การ 4.7, 4.7.1 และ 4.7.2 บน Windows 7 Service Pack 1 (SP1), Windows Server 2008 R2 SP1 หรือ Windows Server 2008 SP2 คุณสังเกตเห็นข้อผิดพลาดในการ.NET โปรแกรมประยุกต์กรอบงานที่ตรงกับเกณฑ์ต่อไปนี้:

  • แอพลิเคชันใช้อินสแตนซ์ของคลาSystem.Transaction.TransactionScopeที่ธุรกรรมขั้นตอนการเปิดใช้งาน โดยการส่งผ่านTransactionScopeAsyncFlowOption.Enabledไปยังตัวสร้างปลั๊กอิน

  • แอพลิเคชันทำให้การเรียกระยะไกลอย่าง น้อยหนึ่งในขณะที่ค่าใดค่าหนึ่งในขอบข่ายธุรกรรมเหล่านี้จะเปิดใช้งาน ในกรณีนี้ การเรียกระยะไกลคือการ โทรใด ๆ ที่ส่งผ่านทางพร็อกซีโปร่งใสก่อนที่จะถึงวัตถุเซิร์ฟเวอร์ ตัวอย่างของการเรียกระยะไกลรวมเรียกโดเมนโปรแกรมประยุกต์อื่นและการเรียกผ่านช่องทางระยะไกล เช่นไคลเอนต์สถานีที่กำหนดไว้ใน namespaces System.Runtime.Remoting.Channels

  • หลังจากการเรียกระยะไกลSystem.Transactions.Transaction.Currentส่งกลับค่า null แทนที่เป็นค่าที่ส่งคืนมาก่อนที่จะเรียกเลขหมายระยะไกล

การแก้ปัญหา

เมื่อต้องการหลีกเลี่ยงปัญหานี้ ลองทำตามวิธีการต่อไปนี้:

  • สำหรับขอบเขตแต่ละธุรกรรมที่เปิดใช้งานธุรกรรมกระแสอยู่ เปลี่ยนแปลงแอพลิเคชันเพื่อให้แน่ใจว่า มีการเรียกระยะไกลเกิดขึ้นที่ใดก็ได้ในโค้ดที่ทำงานในขณะที่ขอบเขตธุรกรรมที่ใช้งานอยู่ เมื่อคุณตรวจสอบว่า ขอบเขตธุรกรรมประกอบด้วยเรียกใด ๆ ระยะไกลให้พิจารณาคำแนะนำต่อไปนี้:

    • การเรียกเมธอดแบบสแตติกไม่ใช่การเรียกระยะไกล

    • สำหรับการเรียกวิธีการอินสแตนซ์บนวัตถุเป้าหมาย การเรียกไม่ไกลวัตถุเป้าหมายคือ พร็อกซีโปร่งใส

    • สำหรับการเรียกไปยังตัวสร้างปลั๊กอิน การเรียกไม่ไกลวัตถุที่สร้างเป็นพร็อกซีโปร่งใส

    หมายเหตุ คุณสามารถใช้เมธอดSystem.Runtime.Remoting.RemotingServices.IsTransparentProxyเพื่อตรวจสอบว่า วัตถุ พร็อกซีโปร่งใสเสมอกัน

  • ปิดใช้งานขั้นตอนการธุรกรรม โดยเอาอาร์กิวเมนต์คอนสตรัคเตอร์TransactionScopeAsyncFlowOption.Enabled 

    คำเตือน

    วิธีแก้ปัญหานี้มีแนวโน้มที่จะทำให้เกิดข้อผิดพลาดอื่น ๆ ดำเนินการดำเนินการใด ๆ "รอ" ในขณะที่ขอบเขตธุรกรรมที่ใช้งานอยู่

  • คุณสมบัติTransaction.Currentจะไม่โดยอัตโนมัติทำให้เป็นอนุกรมเพื่อการเรียกระยะไกล จะต้องถูกส่งผ่านเป็นพารามิเตอร์ ถ้าการเรียกระยะไกลผ่านธุรกรรมเป็นพารามิเตอร์ และทำการติดต่อกลับไปยังไคลเอนต์ในระหว่างการเรียกระยะไกล คุณสามารถสร้างการเรียกระยะไกลภายในขอบข่ายธุรกรรมวัตถุใหม่ที่ใช้TransactionScopeOptions.Suppress ตัวเลือก ซึ่งอยู่ภายในขอบข่ายธุรกรรมที่ระงับ คุณสมบัติTransaction.Currentมีค่า null

สถานะ

เราตระหนักถึงปัญหานี้ และกำลังทำงานกับวิธีแก้ไขปัญหา

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

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

สํารวจสิทธิประโยชน์ของการสมัครใช้งาน เรียกดูหลักสูตรการฝึกอบรม เรียนรู้วิธีการรักษาความปลอดภัยอุปกรณ์ของคุณ และอื่นๆ

ชุมชนช่วยให้คุณถามและตอบคําถาม ให้คําติชม และรับฟังจากผู้เชี่ยวชาญที่มีความรู้มากมาย

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

คุณพึงพอใจกับคุณภาพภาษาเพียงใด
สิ่งที่ส่งผลต่อประสบการณ์ใช้งานของคุณ
เมื่อกดส่ง คำติชมของคุณจะถูกใช้เพื่อปรับปรุงผลิตภัณฑ์และบริการของ Microsoft ผู้ดูแลระบบ IT ของคุณจะสามารถรวบรวมข้อมูลนี้ได้ นโยบายความเป็นส่วนตัว

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

×