Úvod
Aplikace, které spoléhají na .NET Framework k inicializaci součásti COM a které běží s omezenými oprávněními, se nemusí spustit nebo spustit správně po instalaci kumulativních aktualizací zabezpečení a pro zvýšení kvality z července 2018 pro .NET Framework.
Modul runtime Microsoft .NET Framework používá token procesu k určení, jestli je proces spuštěný v kontextu se zvýšenými oprávněními. Tato systémová volání mohou selhat, pokud nejsou k dispozici požadovaná oprávnění ke kontrole procesu. To způsobí chybu "přístup byl odepřen".
Příznaky
Po instalaci kterékoli aktualizace zabezpečení pro .NET Framework z července 2018 dojde k selhání součásti COM kvůli chybám „přístup byl odepřen“, „třída není zaregistrována“ nebo „došlo k vnitřní chybě z neznámých důvodů“. Nejběžnějším podpisem této chyby je tento:
Exception type: System.UnauthorizedAccessException
Message: Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))
SharePoint
- Při procházení sharepointového webu se uživatelům může zobrazit následující zpráva HTTP 403: "Web odmítl zobrazit tuto webovou stránku" HTTP 403.
- Protokoly ULS SharePointu budou obsahovat zprávy, jako jsou například následující:
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))
- Při procházení zdroje obsahu lidí může požadavek selhat a do protokolu ULS SharePointu se zapíše následující položka:
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)
Pokud dojde k této chybě, zaznamená se do protokolů procházení SharePointu zpráva podobná následující:
sps3s://<URLtoSite>
Komponenta potřebná pro procházení tohoto typu obsahu není registrována na tomto aplikačním serveru. Další informace najdete v protokolech událostí. (SearchID = XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX)
Konzola pro správu BizTalk Server
- Konzola pro správu serveru BizTalk Server se nespustí správně a vrátí následující chyby:
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
Služba IIS s klasickým prostředím ASP
Hostovaná klasická verze ASP volající objekt CreateObject for .NET COM může generovat chybovou zprávu podobnou následující:
ActiveX component can't create object
Aplikace .NET, která používá zosobnění
Aplikace .NET, která vytvoří instanci aplikace .NET COM v kontextu zosobnění, může vygenerovat chybovou zprávu, která se podobá následující:
0x80040154 (REGDB_E_CLASSNOTREG)
Řešení
Pokud chcete tyto problémy vyřešit, použijte kumulativní aktualizace zabezpečení a pro zvýšení kvality ze srpna 2018 nebo aktualizace typu "Jenom aktualizace zabezpečení", které se vztahují na váš operační systém a nainstalované rozhraní .NET Framework. Další informace najdete v článku CVE-2018-8356 | .NET Framework Security Feature Bypass Vulnerability.
Alternativní řešení
Pokud chcete tento problém vyřešit, vyzkoušejte některou z následujících metod.
Poznámka V závislosti na ovlivněné aplikaci a jejím kódu nemusí být následující alternativní řešení účinná.
Pokud máte pokročilé znalosti o tom, jak se procesy spouštějí, spusťte proces pomocí oprávnění PROCESS_QUERY_INFORMATION .
Klasické volání ASP hostované službou IIS CreateObject for .NET Objekty COM mohou obdržet chybu Komponenta ActiveX nemůže vytvořit objekt:
Pokud váš web používá anonymní ověřování:
- Změňte přihlašovací údaje pro anonymní ověřování webu na "Identitu fondu aplikací".
Pokud váš web používá základní ověřování nebo ověřování systému Windows:
- Přihlaste se k aplikaci jednou jako identita fondu aplikací a pak vytvořte instanci součásti COM .NET.
- Potom budou ostatní uživatelé webu moct aktivovat součást COM .NET bez selhání.
Pokud používáte ověřování systému Windows a přistupujete na web z konzoly serveru se systémem Windows, na kterém je spuštěna aplikace ASP, postupujte takto:
- Vytvoření instance součásti COM .NET také vyřeší chybu ostatních uživatelů webu.
Aplikace .NET, která vytvoří instanci aplikace .NET COM v kontextu zosobnění, může vygenerovat chybovou zprávu "0x80040154 (REGDB_E_CLASSNOTREG):
Vytvořte instanci komponenty COM .NET před voláním kontextu zosobnění.
- Později zosobněná volání instance create fungují podle očekávání.
Spusťte aplikaci .NET v kontextu zosobněného uživatele.
Vyhněte se použití zosobnění při vytváření objektu COM .NET.
Pokud je nástroj Řízení uživatelských účtů pro daný počítač zakázán, znovu ho povolte.
Pokud se procesu nepodaří načíst Diasymreader.dll, spusťte následující příkaz pro sestavení:
ngen install <the failing assembly>Další informace o ngen naleznete v tématu Ngen.exe (Generátor nativních bitových kopií).
Upozornění: Následující alternativní řešení můžou počítač nebo síť oslabit vůči útoku uživatelů se zlými úmysly nebo škodlivému softwaru, jako jsou viry. Tato alternativní řešení se nedoporučují. Tyto informace ale poskytujeme proto, abyste mohli alternativní řešení implementovat podle vlastního uvážení. Tato alternativní řešení používáte na vlastní nebezpečí.
- Přidejte položku "NETWORK SERVICE" do skupiny místních Administrators.
Stav
Společnost Microsoft potvrdila, že se jedná o problém produktů Microsoft, které jsou uvedeny v sekci Platí pro.
Platí pro
Červenec 2018 Aktualizace zabezpečení pro .NET Framework 3.5, 4.0, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1 a 4.7.2 ve všech použitelných a podporovaných verzích Windows