Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

Sporadischer Absturz: 0xc000000d - An invalid parameter was passed to a service or function
hypersurf
myCSharp.de - Member



Dabei seit:
Beiträge: 521
Herkunft: Münster

Themenstarter:

Sporadischer Absturz: 0xc000000d - An invalid parameter was passed to a service or function

beantworten | zitieren | melden

Hallo Leute,

ich hab' bei einem einzigen Benutzer das Problem, dass unsere Anwendung ohne zutun des Benutzers abstürzt (siehe Anhang). D. h. der Benutzer schaut nur auf die Eingabemaske und die Anwendung stürzt ohne weitere Benutzereingabe ab. Das ganze passiert total sporadisch und so gut wie in jeder vorhandenen Eingabemaske.

In der Main-Methode fangen wir UnhandledExceptions natürlich ab und handeln diese entsprechend. Das funktioniert auch immer - nur bei der oben beschriebenen Problematik nicht.


Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
AppDomain.CurrentDomain.UnhandledException += new System.UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
TaskScheduler.UnobservedTaskException += new EventHandler<UnobservedTaskExceptionEventArgs>(TaskScheduler_UnobservedTaskException);


Im Ereignisprotokoll werden bei diesen Abstürzen zwei Ereignisse protokolliert:

EventId 1000:
Fehler
Name der fehlerhaften Anwendung: xxxx.exe, Version: 1.0.0.0, Zeitstempel: 0x609ab544
Name des fehlerhaften Moduls: ntdll.dll, Version: 10.0.14393.4350, Zeitstempel: 0x606eaf8d
Ausnahmecode: 0xc000000d
Fehleroffset: 0x00000000000fe2ec
ID des fehlerhaften Prozesses: 0xcd2c
Startzeit der fehlerhaften Anwendung: 0x01d756aaa6428410
Pfad der fehlerhaften Anwendung: D:\Application\Application\xxxx.exe
Pfad des fehlerhaften Moduls: C:\Windows\SYSTEM32\ntdll.dll
Berichtskennung: 27bc97d4-0852-41ce-af0f-42c5660e0e54
Vollständiger Name des fehlerhaften Pakets:
Anwendungs-ID, die relativ zum fehlerhaften Paket ist:

- <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
- <System>
  <Provider Name="Application Error" /> 
  <EventID Qualifiers="0">1000</EventID> 
  <Level>2</Level> 
  <Task>100</Task> 
  <Keywords>0x80000000000000</Keywords> 
  <TimeCreated SystemTime="2021-06-01T16:34:56.256651000Z" /> 
  <EventRecordID>2050995</EventRecordID> 
  <Channel>Application</Channel> 
  <Computer>TERM</Computer> 
  <Security /> 
  </System>
- <EventData>
  <Data>xxxx.exe</Data> 
  <Data>1.0.0.0</Data> 
  <Data>609ab544</Data> 
  <Data>ntdll.dll</Data> 
  <Data>10.0.14393.4350</Data> 
  <Data>606eaf8d</Data> 
  <Data>c000000d</Data> 
  <Data>00000000000fe2ec</Data> 
  <Data>cd2c</Data> 
  <Data>01d756aaa6428410</Data> 
  <Data>D:\Application\\Application\xxxx.exe</Data> 
  <Data>C:\Windows\SYSTEM32\ntdll.dll</Data> 
  <Data>27bc97d4-0852-41ce-af0f-42c5660e0e54</Data> 
  <Data /> 
  <Data /> 
  </EventData>
  </Event>


EventId 1026:
Fehler
Anwendung: xxxx.exe
Frameworkversion: v4.0.30319
Beschreibung: Der Prozess wurde aufgrund einer unbehandelten Ausnahme beendet.
Ausnahmeinformationen: Ausnahmecode c000000d, Ausnahmeadresse 00007FFB9028E2EC

Wir verwenden das .NET Framework 4.5.1 auf einem Windows 2016 Remotedesktopserver.
Natürlich habe ich schon stundenlang (eher tagelang) im Netz nach einer Lösung gesucht, aber keine gefunden die mich irgendwie auf die Spur zur Ursache führen könnte.
Ganz einfache Ansätze wie Serverneustart, Virenscanner ausschalten, usw. haben wir natürlich schon ausprobiert.

Mittlerweile läuft fast täglich procdump (procdump -accepteula -e -ma pid) auf den Prozess des Benutzers, leider ist der Fehler noch nie aufgetreten während procdump lief (darauf warten wir aktuell noch).

Woran liegt es, dass der Fehler nicht durch die Event-Handler für die Unhandled Exceptions gefangen wird? Ist ein Memorydump der einzige Weg die Ursache zu ermitteln?

Danke & Gruß

hypersurf






Attachments
private Nachricht | Beiträge des Benutzers
Spook
myCSharp.de - Member



Dabei seit:
Beiträge: 242
Herkunft: Esslingen a.N.

beantworten | zitieren | melden

Hallo hypersurf
Zitat von hypersurf
Woran liegt es, dass der Fehler nicht durch die Event-Handler für die Unhandled Exceptions gefangen wird? Ist ein Memorydump der einzige Weg die Ursache zu ermitteln?

Sollte es sich um eine SEHException handeln (müsstest du mal prüfen), dann kann diese ab .NET FW 4 nicht mehr (ohne Weiteres) über die von dir verwendeten Event-Handler gefangen werden.
CLR Inside Out - Handling Corrupted State Exceptions
Ich würde ebenfalls den von dir versuchten Weg gehen und einen Memory-Dump anfertigen.


Grüße
spooky
private Nachricht | Beiträge des Benutzers
Th69
myCSharp.de - Experte

Avatar #avatar-2578.jpg


Dabei seit:
Beiträge: 4198

beantworten | zitieren | melden

Das liegt daran, daß der Fehler in einer nativen System-DLL ("ntdll.dll") auftritt. Der Fehlercode 0xc000000d bedeutet STATUS_INVALID_PARAMETER.

UnhandledException bezieht sich nur auf .NET Exceptions (keine nativen).

Evtl. mal das .NET Framework (komplett) neu installieren?
private Nachricht | Beiträge des Benutzers
hypersurf
myCSharp.de - Member



Dabei seit:
Beiträge: 521
Herkunft: Münster

Themenstarter:

beantworten | zitieren | melden

Werd' ich am Wochenende mal versuchen. Komisch ist wirklich, dass das Problem nur bei einem einzigen Benutzer (es sind 35 auf dem RDP-Server) auftritt.
private Nachricht | Beiträge des Benutzers
Stefan.Haegele
myCSharp.de - Member

Avatar #avatar-3068.jpg


Dabei seit:
Beiträge: 463
Herkunft: Untermeitingen

beantworten | zitieren | melden

Nur zur Sicherheit:
Die Benutzer arbeiten per RDP auf dem Terminalserver - richtig?
Dann bringt es wenig auf dem Client das Framework neu zu installieren - auf dem Client läuft ja von eurem Application gar nichts, dies passiert alles auf dem Terminalserver. Lösche auf dem Terninalserver mal das Profil des Benutzers.

VG Stefan
private Nachricht | Beiträge des Benutzers
hypersurf
myCSharp.de - Member



Dabei seit:
Beiträge: 521
Herkunft: Münster

Themenstarter:

beantworten | zitieren | melden

Yes, wir installieren am WE mal das Framework auf dem Server neu. Das Benutzerprofil hatten wir schon neu eingerichtet, hatte leider keine Auswirkung.
Kann's theoretisch auch etwas sein, was der Nutzer mit in die Sitzung bringt (Druckerweiterleitung)??
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von hypersurf am .
private Nachricht | Beiträge des Benutzers
Stefan.Haegele
myCSharp.de - Member

Avatar #avatar-3068.jpg


Dabei seit:
Beiträge: 463
Herkunft: Untermeitingen

beantworten | zitieren | melden

Also wenn es nur ein Benutzer ist, wird es meiner Meinung nach nicht an dem Framework des Servers liegen. In der RDP Verbindung kannst du lokale Ressourcen mal alles deaktivieren bis auf Zwischenablage (auch die Remoteaudioeinstellungen).

Wie sind die User mit dem Server verbunden? Gibt es hier eine AUusnahme welche nur auf diesen User zutrifft (z.B. VPN wegen HO?)

Stellt ihr die Applications als RemoteApp zur Verfügung?
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Stefan.Haegele am .
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 16234

beantworten | zitieren | melden

Zitat von hypersurf
Kann's theoretisch auch etwas sein, was der Nutzer mit in die Sitzung bringt (Druckerweiterleitung)??
Klar, an sowas wirds am Ende auch liegen werden. Irgendwas am Profil oder dem User-nahen Environment; tritt ja wie Du sagst auch nur bei diesem User auf.

Ich würd WinDbg (Debugging Tools for Windows) verwenden zur Analyse, damit lassen sich Exceptions wie STATUS_INVALID_PARAMETER und deren Verursacher inkl. Parameter-Values eigentlich einfach finden.
Zitat von hypersurf
Woran liegt es, dass der Fehler nicht durch die Event-Handler für die Unhandled Exceptions gefangen wird?
Nicht alle Arten von Exceptions werden an die .NET Runtime weiter gereicht bzw. nicht alle Exceptions sind durch die Runtime abgreifbar.
- performance is a feature -

Microsoft MVP - @Website - @blog - @AzureStuttgart - github.com/BenjaminAbt
private Nachricht | Beiträge des Benutzers
hypersurf
myCSharp.de - Member



Dabei seit:
Beiträge: 521
Herkunft: Münster

Themenstarter:

beantworten | zitieren | melden

Zitat von Stefan.Haegele
Also wenn es nur ein Benutzer ist, wird es meiner Meinung nach nicht an dem Framework des Servers liegen. In der RDP Verbindung kannst du lokale Ressourcen mal alles deaktivieren bis auf Zwischenablage (auch die Remoteaudioeinstellungen).

Das hatten wir schon versucht, also Druckerweiterleitung, und was man sonst so mit in die Sitzung nehmen kann deaktiviert.
Ich hatte einen ähnlichen Fall mal mit dem PDF-Drucker von DATEV (SkyPDF heißt der glaub' ich). War dieser mit auf dem Server installiert kam es zu völlig sinnlosen Abstürzen, damals gabs aber einen Verweis auf den Drucker in den Einträgen im Eventlog.

Zitat von Stefan.Haegele
Wie sind die User mit dem Server verbunden? Gibt es hier eine AUusnahme welche nur auf diesen User zutrifft (z.B. VPN wegen HO?)

Alle über's lokale Netzwerk.

Zitat von Stefan.Haegele
Stellt ihr die Applications als RemoteApp zur Verfügung?

Nope, jeder hat seinen eigenen Desktop auf dem Server und startet dann die Anwendung. Außer der Anwendung läuft sonst nichts auf dem Server (keine weitere Software installiert).




private Nachricht | Beiträge des Benutzers
Stefan.Haegele
myCSharp.de - Member

Avatar #avatar-3068.jpg


Dabei seit:
Beiträge: 463
Herkunft: Untermeitingen

beantworten | zitieren | melden

Fehlen dem User irgendwelche Berechtigungen? Vergleiche doch mal mit einem User bei dem es keine Probleme gibt. Habt ihr servergespeicherte Profile?
private Nachricht | Beiträge des Benutzers
hypersurf
myCSharp.de - Member



Dabei seit:
Beiträge: 521
Herkunft: Münster

Themenstarter:

beantworten | zitieren | melden

Ist alles identisch zu anderen Benutzern. Es muss irgendwas sein, was der Benutzer mit in die Sitzung bringt.
Wir verschieben den Benutzer jetzt auf einen anderen Server und schauen mal, ob das Problem noch auftritt.

private Nachricht | Beiträge des Benutzers
Stefan.Haegele
myCSharp.de - Member

Avatar #avatar-3068.jpg


Dabei seit:
Beiträge: 463
Herkunft: Untermeitingen

beantworten | zitieren | melden

Wenn ihr servergespeicherte Profile verwendet wird das nichts bringen - falls es so ist, deaktiviere diese für den einzelnen User oder lege ihm ein komplett neues Profil an (ich weiß, man muss danach alles wieder einstellen/konfigurieren - aber manchmal hilft nur dieser Schritt).
private Nachricht | Beiträge des Benutzers