Sharepoint und Visual Studio – OWSTIMER.EXE

0
(0)

Sharepoint ab Version 2010 verfügt über eine neue Funktion, die den OWSTIMER.EXE Prozess jede Nacht recycelt – ähnlich wie die der Anwendungspool-Funktionalität des IIS – dies um Speicherprobleme des Timer-Dienst zu vermeiden.

Das Recycling wird durch ein neuen Zeitgeberauftrag der in Sharepoint 2010/2013 hinzugefügt wurde kontrolliert: der Job „Timer Service Recycle“ läuft Standardmässig einmal pro Tag um 6 Uhr morgens durch.

Während der Durchführung des Recycling Prozesses und das Herunterfahren des Timer-Dienstes kommt es zu einem Problem durch .NET.

Das Problem hierbei ist, der Key zur Verschlüsselung hat in einem Thread die Identität dessen Benutzerkonto angenommen, von diesem der Key erstellt wurde. Wenn nun der .NET Finalizer verarbeitet wird, kommt es dazu das der Key zur Verschlüsselung während des heruntergefahrenen Timer-Dienst, bei dem nächsten Thread dieser nicht imitiert ausgeführt wird – so dass der Schlüssel nicht vorhanden ist und es zur Ausnahme “keyset does not exist“ kommt.

Da diese Ausnahme in der letzten Phase der Abschaltung des Prozesses kommt, wird kein weiterer Schaden verursacht, der entsprechende Fehler wird im Ereignisprotokoll vermerkt:

An unhandled exception occurred and the process was terminated.
Process ID: 4213
Exception: System.Security.Cryptography.CryptographicException
Message: Keyset does not exist

Sichtbar wird das Problem auch auf der Konsole wenn Visual Studio oder ein weiterer JIT-Debugger auf dem betroffenen System installiert ist. In diesem Fall wird folgender Dialog auf der Server Konsole erscheinen:

Visual Studio Just-in-Time Debugger

Deinstallieren von Visual Studio wird dieses Problem nicht beheben, da die Registrierungseinstellungen noch präsent und aktiv ist.

Just-In-Time-Debugger exception

Um den Server so zu konfigurieren dass das Dialogfeld zur unbehandelten Ausnahme nicht mehr auftritt, kann der Registrierungseditor aufgerufen werden um folgende Registrierungsschlüssel zu löschen:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug\Debugger
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\DbgManagedDebugger

Bei einem 64-bit Betriebssystem sind folgende Registry Keys zu entfernen:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\AeDebug\Debugger
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\DbgManagedDebugger
Regedit vsjitdebugger entfernen

Die REG_SZ Zeichenfolge Debugger löschen, dabei ist acht zu geben das keine weiteren Schlüssel entfernt werden!

Wie hilfreich war dieser Beitrag?

Klicke auf die Sterne um zu bewerten!

Durchschnittliche Bewertung 0 / 5. Anzahl Bewertungen: 0

Bisher keine Bewertungen! Sei der Erste, der diesen Beitrag bewertet.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert