Einführung
Anwendungen, die auf .NET Framework basieren, um eine COM-Komponente zu initialisieren, und die mit eingeschränkten Berechtigungen ausgeführt werden, können möglicherweise nicht gestartet oder ordnungsgemäß ausgeführt werden, nachdem Sie die Updates für das Sicherheits- und Qualitätsrollup vom Juli 2018 für .NET Framework installiert haben.
Microsoft .NET Framework Runtime verwendet das Prozesstoken, um zu bestimmen, ob der Prozess in einem Kontext mit erhöhten Rechten ausgeführt wird. Diese Systemaufrufe können fehlschlagen, wenn die erforderlichen Berechtigungen für die Prozessüberprüfung nicht vorhanden sind. Dies verursacht den Fehler "Zugriff verweigert".
Symptome
Nach der Installation eines der Sicherheitsupdates vom Juli 2018 für .NET Framework kann eine COM-Komponente aufgrund der Fehlermeldung „Zugriff verweigert“, „Klasse nicht registriert“ oder „Interner Fehler mit unbekannter Ursache“ nicht geladen werden. Dies ist die häufigste Fehlersignatur:
Exception type: System.UnauthorizedAccessException
Message: Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))
SharePoint
- Wenn Benutzer zu einer SharePoint-Website navigieren, wird möglicherweise die folgende HTTP 403-Meldung angezeigt: "Die Website hat abgelehnt, diese Webseite anzuzeigen" HTTP 403.
- Die SharePoint ULS-Protokolle enthalten Meldungen wie die folgenden:
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))
- Beim Durchforsten einer Personeninhaltsquelle schlägt die Anforderung möglicherweise fehl und protokolliert den folgenden Eintrag im SharePoint ULS-Protokoll:
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)
Wenn der Fehler auftritt, wird eine Meldung, die der folgenden ähnelt, in den SharePoint-Durchforstungsprotokollen protokolliert:
sps3s://<URLtoSite>
Eine Komponente, die zum Durchforsten dieser Art von Inhalt erforderlich ist, ist nicht bei diesem Anwendungsserver registriert. Weitere Informationen findest du in den Ereignisprotokollen. (SearchID = XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX)
BizTalk Server-Verwaltungskonsole
- BizTalk Server-Verwaltungskonsole kann nicht ordnungsgemäß gestartet werden und gibt die folgenden Fehler zurück:
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 mit klassischem ASP
Eine gehostete klassische ASP, die CreateObject für .NET COM-Objekte aufruft, generiert möglicherweise eine Fehlermeldung, die der folgenden ähnelt:
ActiveX component can't create object
.NET-Anwendung, die Identitätswechsel verwendet
Eine .NET-Anwendung, die eine instance einer .NET COM-Anwendung innerhalb eines Identitätswechselkontexts erstellt, generiert möglicherweise eine Fehlermeldung, die der folgenden ähnelt:
0x80040154 (REGDB_E_CLASSNOTREG)
Lösung
Um diese Probleme zu beheben, wenden Sie die Sicherheits- und Qualitätsrollups vom August 2018 oder die Updates nur Sicherheitsupdates an, die für Ihr Betriebssystem und .NET Framework installiert sind. Weitere Informationen findest du unter CVE-2018-8356 | .NET Framework Sicherheitsrisiko bei Umgehung von Sicherheitsfeatures.
Problemumgehung
Um dieses Problem zu umgehen, probieren Sie eine der folgenden Methoden aus.
Hinweis Abhängig von der betroffenen Anwendung und ihrem Code sind die folgenden Problemumgehungen möglicherweise nicht wirksam.
Wenn Sie über fortgeschrittene Kenntnisse darüber verfügen, wie Prozesse gestartet werden, führen Sie den Prozess mit der Berechtigung PROCESS_QUERY_INFORMATION aus.
Iis gehostetes klassisches ASP, das CreateObject für .NET COM-Objekte aufruft, erhalten möglicherweise den Fehler "ActiveX-Komponente kann kein Objekt erstellen":
Wenn Ihre Website die anonyme Authentifizierung verwendet:
- Ändern Sie die Anmeldeinformationen für die anonyme Authentifizierung der Website, um die "Anwendungspoolidentität" zu verwenden.
Wenn Ihre Website die Standardauthentifizierung oder die Windows-Authentifizierung verwendet:
- Melden Sie sich einmal als Anwendungspoolidentität bei der Anwendung an, und erstellen Sie dann eine instance der .NET COM-Komponente.
- Danach können andere Websitebenutzer die .NET-COM-Komponente ohne den Fehler aktivieren.
Alternativ können Sie die Windows-Authentifizierung verwenden und über die Konsole des Windows-Servers, auf dem die ASP-Anwendung ausgeführt wird, auf die Website zugreifen:
- Durch das Erstellen einer instance der .NET COM-Komponente wird auch der Fehler für andere Websitebenutzer behoben.
Eine .NET-Anwendung, die eine instance der .NET COM-Anwendung innerhalb eines Identitätswechselkontexts erstellt, generiert möglicherweise die Fehlermeldung "0x80040154 (REGDB_E_CLASSNOTREG)":
Erstellen Sie vor dem Aufruf des Identitätswechselkontexts eine instance der .NET-COM-Komponente.
- Später angenommene Erstellung instance Aufrufe wie erwartet funktionieren.
Führen Sie die .NET-Anwendung im Kontext des angenommenen Benutzers aus.
Vermeiden Sie die Verwendung des Identitätswechsels beim Erstellen des .NET COM-Objekts.
Wenn die UAC für den Computer deaktiviert ist, aktivieren Sie sie erneut.
Wenn der Prozess nicht Diasymreader.dll lädt, führen Sie den folgenden Befehl für die Assembly aus:
ngen install <the failing assembly>Weitere Informationen zu ngen finden Sie unter Ngen.exe (Native Image Generator).
Warnung: Die folgenden Problemumgehungen können einen Computer oder ein Netzwerk anfälliger für Angriffe durch böswillige Benutzer oder durch Schadsoftware wie Viren machen. Diese Problemumgehungen werden nicht empfohlen. Wir stellen diese Informationen jedoch zur Verfügung, damit Sie die Problemumgehungen nach eigenem Ermessen implementieren können. Verwenden Sie diese Problemumgehungen auf eigenes Risiko.
- Fügen Sie der lokalen Administratorgruppe "NETWORK SERVICE" hinzu.
Status
Microsoft hat bestätigt, dass dies ein Problem bei den Microsoft-Produkten ist, die im Abschnitt „Gilt für“ aufgeführt sind.
Gilt für
Juli 2018 .NET Framework Security Updates für .NET Framework 3.5, 4.0, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1 und 4.7.2 unter allen anwendbaren und unterstützten Versionen von Windows