บทนำ
แอพลิเคชันที่ใช้.NET Framework สามารถเตรียมใช้งานคอมโพเนนต์ COM และที่รัน ด้วยสิทธิ์แบบจำกัดอาจล้มเหลวเมื่อต้องการเริ่มการทำงาน หรือทำงานได้อย่างถูกต้องหลังจากที่คุณติดตั้ง 2018 กรกฎาคมปรับปรุงการรักษาความปลอดภัยและค่าสะสมคุณภาพสำหรับ.NET Framework
Microsoft .NET Framework runtime ใช้โทเค็นการกระบวนการตรวจสอบว่า มีการใช้กระบวนการภายในบริบทยกระดับ เรียกระบบเหล่านี้สามารถล้มเหลวถ้าไม่มีกระบวนการที่จำเป็นต้องตรวจสอบสิทธิ์อยู่ ซึ่งทำให้เกิดข้อผิดพลาด "access denied"
อาการ
หลังจากที่คุณติดตั้งการปรับปรุง.NET Framework 2018 กรกฎาคมใด ๆ คอมโพเนนต์ COM ไม่สามารถโหลดได้เนื่องจาก มี "ปฏิเสธการเข้าถึง "คลาสไม่ได้ลงทะเบียน หรือ "เกิดความล้มเหลวภายในด้วยเหตุผลที่ไม่รู้จัก" ข้อผิดพลาด ลายเซ็นล้มเหลวทั่วไปมีดังนี้:
Exception type: System.UnauthorizedAccessException
Message: Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))
SharePoint
-
เมื่อผู้ใช้เรียกดูไปยังไซต์ SharePoint พวกเขาอาจเห็น HTTP 403 ข้อความต่อไปนี้: "เว็บไซต์ปฏิเสธที่จะแสดงเว็บเพจนี้" HTTP 403 ได้
-
ในแฟ้มบันทึก uls ของ SharePoint จะประกอบด้วยข้อความต่อไปนี้:
w3wp.exe (0x1894) 0x0B94 SharePoint Foundation General 0000 High UnauthorizedAccessException for the request. 403 Forbidden will be returned. Error=An error occurred creating the configuration section handler for system.serviceModel/extensions: Could not load file or assembly <AssemblySignature> or one of its dependencies. Access is denied. (C:\Windows\Microsoft.NET\Framework64\v2.0.50727\Config\machine.config line 180)
w3wp.exe (0x1894) 0x0B94 SharePoint Foundation General b6p2 VerboseEx Sending HTTP response 403:403 FORBIDDEN.
w3wp.exe (0x1894) 0x0B94 SharePoint Foundation General 8nca Verbose Application error when access /, Error=Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))
-
เมื่อทำการตระเวนแหล่งเนื้อหาบุคคล คำขออาจล้มเหลว และเข้าสู่รายการต่อไปนี้ในแฟ้มบันทึก uls ของ SharePoint:
mssearch.exe (0x118C) 0x203C SharePoint Server Search Crawler:Gatherer Plugin cd11 Warning The start address sps3s://<URLtoSite> cannot be crawled. Context: Application 'Search_Service_Application', Catalog 'Portal_Content' Details: Class not registered (0x80040154)
เมื่อเกิดข้อผิดพลาด ข้อความที่มีลักษณะต่อไปนี้ถูกบันทึกในแฟ้มบันทึกการตระเวน SharePoint:
sps3s://<URLtoSite> A component required for crawling this type of content is not registered with this application server. View the event logs for more information. (SearchID = XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX)
คอนโซลการจัดการ BizTalk Server
-
คอนโซลการดูแลเซิร์ฟเวอร์ BizTalk ไม่เริ่มทำงานได้อย่างถูกต้อง และส่งกลับข้อผิดพลาดต่อไปนี้:
An internal failure occurred for unknown reasons. (WinMgmt)
Program Location:
at System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32 errorCode, IntPtr errorInfo)
at System.Management.ManagementObject.Get()
at Microsoft.BizTalk.SnapIn.Framework.WmiProvider.SelectInstance
IIS กับ ASP คลาสสิก
-
เป็นโฮสต์แบบคลาสสิก ASP เรียกCreateObjectสำหรับออบเจ็กต์.NET COM อาจสร้างข้อผิดพลาดที่คล้ายกับต่อไปนี้: ActiveX component can't create object
โปรแกรมประยุกต์.NET ที่ใช้เลียนแบบ
-
แอพลิเคชันเป็น.NET ที่สร้างอินสแตนซ์ของแอพลิเคชัน.NET COM ภายในบริบทเลียนแบบอาจสร้างข้อผิดพลาดที่คล้ายกับต่อไปนี้: 0x80040154 (REGDB_E_CLASSNOTREG)
การแก้ไข
เมื่อต้องการแก้ไขปัญหาเหล่านี้ ใช้สิงหาคมความปลอดภัย 2018 และเปลี่นคุณภาพ หรือการรักษาความปลอดภัยเฉพาะการอัพเดสามารถใช้ได้กับระบบปฏิบัติการของคุณและติดตั้ง.NET Framework สำหรับข้อมูลเพิ่มเติม ไปCVE-2018-8356 | ช่องโหว่ข้ามคุณลักษณะความปลอดภัยกรอบงาน.NET
การแก้ปัญหา
เมื่อต้องการหลีกเลี่ยงปัญหานี้ ลองทำตามวิธีการต่อไปนี้
หมายเหตุ ขึ้นอยู่กับแอพลิเคชันที่ได้รับผลกระทบและรหัส การแก้ปัญหาต่าง ๆ ต่อไปนี้อาจไม่มีผลบังคับใช้ได้
-
ถ้าคุณมีความรู้ในระดับขั้นสูงเกี่ยวกับวิธีการเริ่มต้นกระบวนการ รันกระบวนการ โดยใช้แบบPROCESS_QUERY_INFORMATIONสิทธิ์
-
IIS โฮสต์แบบคลาสสิก ASP เรียก CreateObject สำหรับออบเจ็กต์.NET COM อาจได้รับการ "คอมโพเนนต์ ActiveX ไม่สามารถสร้างวัตถุ"ข้อผิดพลาด:
-
ถ้าเว็บไซต์ของคุณใช้การรับรองความถูกต้องแบบไม่ระบุชื่อ:
-
เปลี่ยนข้อมูลประจำตัวของการรับรองความถูกต้องแบบไม่ระบุชื่อของเว็บไซต์จะใช้ "แอพลิเคชันที่เก็บพักข้อมูลประจำตัว"
-
-
ถ้าไซต์ของคุณใช้การรับรองความถูกต้องพื้นฐานหรือการรับรองความถูกต้องของ Windows:
-
เข้าสู่ระบบในแอพลิเคชันหนึ่งครั้งเป็นเอกลักษณ์ของกลุ่มแอพลิเคชัน ก็สร้างอินสแตนซ์ของคอมโพเนนต์.NET COM
-
หลังจากนั้น ผู้ใช้ไซต์อื่น ๆ จะสามารถคอมโพเนนต์ COM .NET ได้ใช้งานอยู่โดยไม่มีความล้มเหลว
-
-
อีกวิธีหนึ่งคือ ถ้าคุณกำลังใช้การพิสูจน์ตัวจริงของ Windows และคุณกำลังเข้าถึงเว็บไซต์ได้จากคอนโซลของเซิร์ฟเวอร์ Windows ที่รันโปรแกรมประยุกต์ ASP:
-
สร้างอินสแตนซ์ของคอมโพเนนต์.NET COM แก้ข้อผิดพลาดสำหรับผู้ใช้ไซต์อื่น
-
-
-
แอพลิเคชันเป็น.NET ที่สร้างอินสแตนซ์ของแอพลิเคชัน.NET COM ภายในบริบทการเลียนแบบ อาจสร้างข้อความข้อผิดพลาด"0x80040154 (REGDB_E_CLASSNOTREG)" :
-
สร้างอินสแตนซ์ของคอมโพเนนต์.NET COM ก่อนการเรียกบริบทการเลียนแบบ
-
รุ่นที่ใหม่กว่าสสำหรับสร้างอินสแตนซ์เรียกใช้งานตามที่คาดไว้
-
-
เรียกใช้โปรแกรมประยุกต์.NET ในบริบทของผู้ใช้เลียนแบบ
-
หลีกเลี่ยงการใช้เมื่อสร้างวัตถุ.NET COM เลียนแบบ
-
-
ถ้า UAC ปิดใช้งานสำหรับคอมพิวเตอร์ เปิดใช้งานนั้น
-
ถ้ากระบวนการไม่สามารถโหลด Diasymreader.dll เรียกใช้คำสั่งต่อไปนี้สำหรับแอสเซมบลี: ngen install <the failing assembly> สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ ngen ดูNgen.exe (ตัวสร้างอิมเมจดั้งเดิม).
คำเตือน:การแก้ปัญหาต่าง ๆ ต่อไปนี้อาจทำให้คอมพิวเตอร์หรือเครือข่ายที่มีความเสี่ยงที่จะถูกโจมตี จากผู้ใช้ที่เป็นอันตราย หรือซอฟต์แวร์ที่เป็นอันตรายเช่นไวรัส เราไม่แนะนำให้แก้ไขปัญหาเหล่านี้ อย่างไรก็ตาม เราจะให้ข้อมูลนี้เพื่อให้คุณสามารถใช้การแก้ไขปัญหาที่เกิดขึ้นตามดุลพินิจของคุณเอง ใช้วิธีการเหล่านี้ที่รับผิดชอบของคุณเอง
-
เพิ่ม "บริการเครือข่าย" กลุ่มผู้ดูแลระบบท้องถิ่น
สถานะ
Microsoft ยืนยันว่าปัญหานี้เป็นปัญหาที่เกิดขึ้นกับผลิตภัณฑ์ของ Microsoft ซึ่งมีการระบุไว้ในส่วน "นำไปใช้กับ"
นำไปใช้กับ
ปรับปรุง.NET Framework 2018 กรกฎาคมสำหรับ.NET Framework 3.5, 4.0, 4.5.2, 4.6, 4.6.1 การ 4.6.2 การ 4.7, 4.7.1 และ 4.7.2 บนเวอร์ชันได้รับการสนับสนุน และสามารถใช้ได้ทั้งหมดของ Windows