Freigeben über


Eine COM+-Anwendung funktioniert möglicherweise nicht mehr in Windows, wenn sich ein Benutzer abmeldet

Dieser Artikel enthält eine Lösung für ein Problem, bei dem eine COM+-Anwendung in Windows nicht mehr funktioniert, wenn sich ein Benutzer abmeldet.

Ursprüngliche KB-Nummer: 2287297

Symptome

Auf einem Windows-Server verfügen Sie über eine COM+-Serveranwendung, in der die Identität so konfiguriert ist, dass sie als bestimmter Benutzer ausgeführt wird. Nach einiger Zeit funktioniert die Anwendung möglicherweise nicht mehr, und sie funktioniert nicht mehr. Sie müssen die COM+-Anwendung neu starten, um das Problem zu beheben.

Möglicherweise wird ein Fehler angezeigt, der dem folgenden im Anwendungsprotokoll auf dem CLIENT-Computer ähnelt. Wenn die ausführbare Clientdatei auf demselben Computer wie die COM+-Serveranwendung ausgeführt wird, wird auf dem COM+-Server dieser Fehler angezeigt:

Ereignistyp: Fehler
Ereignisquelle: DCOM
Ereigniskategorie: Keine
Ereignis-ID: 10006
Datum: <DateTime>
Uhrzeit: <DateTime>
Benutzer: Domäne\Benutzer
Computer:*****
Beschreibung:
DCOM hat fehler "Nicht angegebener Fehler" vom Computer 'servername' beim Versuch, den Server zu aktivieren: {XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX}

In diesem Fall teilt ihnen die Ereignismeldung mit, dass der Fehler (E_FAIL oder 80004005 oder nicht angegebener Fehler) vom Server zurückgegeben wird. Die CLSID der Komponente wird im Ereignisprotokolleintrag aufgeführt.

Außerdem werden Ereignisse angezeigt, die im Anwendungsprotokoll des Computers, auf dem die COM+-Anwendung ausgeführt wird, wie folgt aussieht:

Protokollname: Application
Quelle: Microsoft-Windows-User Profiles Service
Datum: <DateTime>
Ereignis-ID: 1530
Aufgabenkategorie: Keine
Ebene: Warnung
Schlüsselwörter: Klassisch
Benutzer: SYSTEM
Computer: SERVERNAME
Beschreibung:
Windows hat festgestellt, dass Ihre Registrierungsdatei weiterhin von anderen Anwendungen oder Diensten verwendet wird. Die Datei wird jetzt entladen. Die Anwendungen oder Dienste, die Ihre Registrierungsdatei enthalten, funktionieren danach möglicherweise nicht ordnungsgemäß.

DETAIL-
1 Benutzerregistrierung behandelt einen Verlust von \Registry\User\S-1-5-21-1049297961-3057247634-349289542-1004_Classes:
Prozess 2428 (\Device\HarddiskVolume1\Windows\System32\dllhost.exe) hat den Schlüssel \REGISTRY\USER\S-1-5-21-1123456789-3057247634-349289542-1004_CLASSES

Möglicherweise wird der Aufruf zum Erstellen einer Instanz der Komponente 0x800703fa angezeigt.

Ursache

Die Benutzeridentität, die der COM+-Anwendung zugeordnet ist, wird angemeldet, wenn die COM+-Anwendung zum ersten Mal initialisiert wird. Wenn sich dieser Benutzer vom Computer abmelden würde, würde das Profil des Benutzers entladen, und die COM+-Anwendung kann Registrierungsschlüssel nicht mehr im Profil der Benutzeridentität lesen. Ab Windows Vista erzwingt der Benutzerprofildienst das Entladen eines Benutzerprofils, wenn sich dieser Benutzer abmeldet. Dies ist eine Situation, in der die Funktionalität der Erzwingung des Entladens des Benutzerprofils eine Anwendung unterbrechen kann, wenn Registrierungshandles nicht im Prozess geschlossen werden. Diese neue Benutzerprofildienstfunktion ist das Standardverhalten.

Lösung

Als Problemumgehung kann es erforderlich sein, das Standardverhalten des Benutzerprofildiensts zu ändern. Die Richtlinieneinstellung entlädt die Benutzerregistrierung bei der Benutzeranmeldung nicht erzwungen, zähler das Standardverhalten von Vista und neueren Betriebssystemen.The policy setting Do not forcefully unload the user registry at user logoff counters the default behavior of Vista and newer operating systems. Wenn diese Option aktiviert ist, entlädt der Benutzerprofildienst die Registrierung nicht erzwungen, sondern wartet, bis keine anderen Prozesse die Benutzerregistrierung verwenden, bevor sie entladen wird. Die Richtlinie befindet sich im Gruppenrichtlinien-Editor (gpedit.msc). Das Nicht erzwungene Entladen der Benutzerregistrierung bei der Benutzerabmeldungsrichtlinie befindet sich unter Computerkonfigurations-Administrative Vorlagen-Systembenutzerprofile>>>.

Ändern Sie die Einstellung von "Nicht konfiguriert " in "Aktiviert ", wodurch das neue Feature "Benutzerprofildienst" deaktiviert wird. DisableForceUnload ist der Wert, der der Registrierung hinzugefügt wird.

Weitere Informationen

Windows entlädt die Benutzerregistrierung immer, auch wenn bei der Benutzeranmeldung geöffnete Handles für die Registrierungsschlüssel pro Benutzer vorhanden sind. Mithilfe dieser Richtlinieneinstellung kann ein Administrator dieses Verhalten verwehren, hindert Windows daran, die Benutzerregistrierung bei der Benutzeranmeldung erzwungen zu entladen.

Notiz

Diese Richtlinie sollte nur für Fälle verwendet werden, in denen aufgrund dieses spezifischen Windows-Verhaltens möglicherweise Probleme mit der Anwendungskompatibilität auftreten. Es wird nicht empfohlen, diese Richtlinie standardmäßig zu aktivieren, da benutzer möglicherweise daran gehindert werden, eine aktualisierte Version ihres Roamingbenutzerprofils zu erhalten.

Wenn Sie diese Richtlinieneinstellung aktivieren, entlädt Windows die Registrierung der Benutzer bei der Abmeldung nicht erzwungen, sondern entlädt die Registrierung, wenn alle geöffneten Handles für die Registrierungsschlüssel pro Benutzer geschlossen werden.

Wenn Sie diese Richtlinieneinstellung deaktivieren oder nicht konfigurieren, entlädt Windows die Benutzerregistrierung bei der Abmeldung immer, selbst wenn bei der Benutzeranmeldung geöffnete Handles für die Registrierungsschlüssel pro Benutzer vorhanden sind.

Selbst wenn Sie die Benutzerregistrierung bei der Richtlinieneinstellung für die Benutzeranmeldung nicht erzwungen entladen haben, wird die Ereignis-ID 1530 möglicherweise protokolliert. Die Warnung wird nach dem ersten Versuch protokolliert, die Registrierungsstruktur zu entladen. Wenn dies fehlschlägt, wird die Richtlinie überprüft, um zu ermitteln, ob die Registrierungsstruktur unabhängig von geöffneten Registrierungshandles zum Entladen gezwungen werden soll.