Warum müssen Anwendungen "geschlossen" oder "aufhören zu arbeiten", und was kann ich dagegen tun?

31529
manchester050 .

Während ich eine Anwendung verwende, wird folgende Fehlermeldung angezeigt (abhängig von der Version von Windows):

Windows XP

[Anwendungsname] hat ein Problem festgestellt und muss geschlossen werden. Wir entschuldigen uns für die Unannehmlichkeiten.

Windows Vista, Windows 7, Windows 8

[Anwendungsname] funktioniert nicht mehr

Danach wird die Anwendung geschlossen. Warum müssen Anwendungen "geschlossen" oder "aufhören zu arbeiten", und was kann ich dagegen tun?

6
Welche anwendung? BBlake vor 12 Jahren 6
Es tut ihnen wirklich nicht leid. Daniel Beck vor 12 Jahren 6
Beachten Sie, dass Registry-Reiniger (Schritt 2) häufiger Probleme verursachen als sie zu lösen. Harry Johnston vor 12 Jahren 4
Ist es neben dem Kommentar von @ BBlakes ein legaler Kommentar? cutrightjm vor 12 Jahren 0
Um welche Art von Anwendung handelt es sich? Win32, .Net? Wenn es nicht .Net ist, hat .Net Framework nichts damit zu tun. vor 12 Jahren 0

7 Antworten auf die Frage

5
Der Hochstapler

Zunächst ist dieser Fehler nicht Ihre Schuld.

Ein Programmierer hat vergessen, einen Fehler in seinem Programm zu behandeln, daher schlägt er fehl.

Natürlich tritt das Problem nicht hat in der Anwendung selbst zu sein (so der Programmierer aus dem Schneider ist). Dies kann in Windows sein oder in der MSVC-Laufzeit, in der .Net-Laufzeit oder in den Grafikkartentreibern oder was auch immer (deshalb werden Sie immer aufgefordert, alle Updates zu installieren, bevor Sie sich an den Support wenden).

Sie haben also alles abgedeckt, aber das Problem bleibt bestehen. Was jetzt?

Nun, das einzige, was jetzt noch übrig ist, ist, dass die betreffende Anwendung fehlerhaft ist und der Programmierer für diese nicht aus dem Schneider ist ( A-HA! ). Es ist also das Problem des Autors der Software. Wenden Sie sich an sie und fragen Sie sie, ob sie Ihnen helfen könnten, und beheben Sie das Problem.

Aber was ist, wenn sie mir sagen, dass ihre Software perfekt ist? Ich bin der Einzige mit diesem Problem und im Allgemeinen ist es meine Schuld.

Jetzt kommt der lustige Teil. Sie finden die tatsächliche Ursache Ihrer Fehlermeldung.
Was hat die Anwendung tatsächlich zu dem Betriebssystem gesagt, das das Betriebssystem dazu veranlasst hat, " Sie müssen den F-down herunterfahren! "?

Dafür stehen Ihnen viele Werkzeuge zur Verfügung.

  • Protokolldateien
  • Das Windows-Ereignisprotokoll
  • Prozessmonitor

Sollte die betreffende Anwendung Protokolldateien ausschreiben, können diese bei der Suche nach der Ursache Ihres Anwendungsproblems Gold sein. Lesen Sie sie und besprechen Sie mögliche Fehlermeldungen hier.

Das Windows-Ereignisprotokoll enthält sicherlich Informationen über die abgestürzte Anwendung. Wenn es sich tatsächlich um eine .NET-Anwendung handelt, können Sie sogar Glück haben und einen Aufrufstack aus dem Protokoll ziehen (was für Entwickler sehr hilfreich sein könnte).

Wenn alles andere fehlschlägt, wenden Sie sich an Process Monitor . Process Monitor ist ein Tool, das die gesamte Kommunikation zwischen einer Anwendung und dem Betriebssystem (sozusagen) protokolliert . In den resultierenden erfassten Daten konnten Sie also genau sehen, welche Funktion die Anwendung aufgerufen hat, die zu einem unbehandelten Fehlerzustand führte. Dies könnte etwas Triviales sein, wie der Versuch, auf eine nicht vorhandene Datei oder ein Registrierungsobjekt zuzugreifen. Wenn Sie jedoch feststellen, dass ein Aufruf des Protokolls lange dauert, werden Sie mit diesem Ansatz wahrscheinlich nicht sehr weit kommen, wenn Sie keine Erfahrung mit der Softwareentwicklung haben.

Wenn Sie das tun " Nun, das hilft mir wahrscheinlich nicht bei der Lösung meines Problems ", dann haben Sie wahrscheinlich Recht. Es kann zwar Spaß machen, ein Problem wie dieses für bestimmte Personen aufzuspüren, aber normalerweise ist es die Aufgabe der Person, die die fehlerhafte Software geschrieben hat.

Sie sind weit besser dafür gerüstet, das Problem zu finden, als Sie es sind. Ein richtiger Fehlerbericht kann manchmal sehr weit gehen.

Zwei Anwendungen. Eine davon ist kundenspezifische Software, die vom angestellten, freiberuflichen Programmierer erstellt wird. Aber ich möchte nicht, dass er mir aus zwei Gründen dabei hilft, dieses Problem zu lösen. Erstens, weil er für eine Weile für mich gearbeitet hat und es viele Aufgaben gibt, die erledigt werden müssen. Ich möchte seine Arbeit damit nicht unterbrechen. Der zweite Grund ist, dass diese Software, die erstellt wird, immer fehlerfrei funktioniert hat, BEVOR ich die vorherige Version des .NET-Frameworks deinstalliert und das .NET-Framework 4.0 (und den nächsten Kommentar) installiert habe. manchester050 . vor 12 Jahren 0
Zweite Anwendung ist eine bestimmte Datei im PC-Spiel Football Manager 2012. Diese bestimmte Datei ist Editor.exe Oliver; die Software Process Monitor. Wie Sie es beschrieben haben, scheint es, als könnte ich es versuchen, aber ich habe es noch nie benutzt und weiß nicht, was ich damit machen soll. Soll ich "etwas" löschen (was ist das "etwas"?), Wenn es gleichzeitig auftritt, wenn ich versuche, eine Anwendung auszuführen, die den Fehler verursacht? manchester050 . vor 12 Jahren 0
4
mtone

Deinstallierte frühere Versionen von .NET Framework und installierte 4.0

Tun Sie dies niemals, Sie dürfen .NET Frameworks nicht deinstallieren. Die Idee hinter diesen Versionen ist, dass, wenn Microsoft Verbesserungen an .NET Framework vornimmt und Änderungen daran vornimmt, diese möglicherweise die Kompatibilität mit Programmen unterbrechen, die mit früheren .NET-Versionen entwickelt wurden.

Um dieses Problem zu vermeiden, wird eine neue .NET-Version veröffentlicht, die nebeneinander installiert werden kann. Windowss verwaltet sie korrekt und lädt dann jede Version, die ein Programm verlangt. Dadurch können Sie alte und neue Programme ohne Probleme ausführen.

Ich wiederhole, wenn eine Anwendung für .NET 3.5 entwickelt wurde, kann nicht erwartet werden, dass sie auf einer anderen .NET-Version zuverlässig ausgeführt wird .

Da in einem Ihrer Kommentare erwähnt wird, dass Ihre benutzerdefinierte Software immer funktioniert hat, bevor Sie die vorherige Version von .NET deinstalliert haben, werde ich sie weiter installieren. Am einfachsten ist es, die Anwendung erneut zu installieren - sie enthalten normalerweise das entsprechende .NET-Installationsprogramm, das sie benötigen.

mtone also sollte ich .net 3.5 neu installieren oder 4.0 deinstallieren und danach 3.5 und danach 4.0 neu installieren? manchester050 . vor 12 Jahren 0
@ manchester050 Sie können sie in beliebiger Reihenfolge installieren (Windows speichert sie in separaten Ordnern), daher müssen Sie 4.0 nicht deinstallieren. mtone vor 12 Jahren 0
mtone Ihre vorgeschlagene Lösung (die sowohl 3.5 als auch 4.0 installiert hatte) funktionierte für eine von zwei Anwendungen. Bei der zweiten ist immer noch der Fehler aufgetreten. Muss ich auch .net Framework 4.5 installieren? Aber ich denke, es ist noch nicht veröffentlicht. Was soll ich sonst machen? manchester050 . vor 12 Jahren 0
jemand? muss sich das Framework (4.0) auf derselben Festplatte befinden wie die Anwendung, die erzeugt "application.exe hat ein Problem und muss geschlossen werden. Wir entschuldigen uns für die Unannehmlichkeiten" Fehler? Oder kann auf Frameworkdateien zugegriffen werden, auch wenn sich die Anwendung auf einer anderen Festplatte befindet? Ich kann es nicht auf die gleiche Festplatte wie Framework 4.0 stellen. manchester050 . vor 12 Jahren 0
@ manchester050 Froh, dass es geklappt hat. Ziemlich sicher, dass .NET automatisch und immer im Ordner C: \ Windows \ Microsoft.NET \ Framework installiert wird. Nein, machen Sie sich keine Sorgen über 4.5 oder andere Versionen, es sei denn, Sie können herausfinden, welche Version sie wirklich benötigen. Der andere Fehler, den Sie haben, ist möglicherweise ein anderes als .NET. mtone vor 12 Jahren 0
Was soll ich tun? Könnten Sie bitte auch meine vorhergehende Frage noch einmal lesen, weil Sie sie meiner Meinung nach übersehen haben. manchester050 . vor 12 Jahren 0
@ manchester050 .NET-Frameworks werden in Ihrem Windows-Ordner (normalerweise Laufwerk C) installiert. Anwendungen können von überall aus ausgeführt werden. Andernfalls installieren Sie Ihre Anwendungen erneut oder wenden Sie sich an den Hersteller. Es ist schwer zu erraten, was zum Absturz von Anwendungen führen kann - insbesondere, wenn es sich um 1 oder 2 spezifische Anwendungen handelt. Entschuldigung, ich kann nicht weiter helfen. mtone vor 12 Jahren 0
*> Sie sollten * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * .NET-Frameworks nicht deinstallieren. * Installieren Sie einfach neue Versionen und installieren Sie Dateien und Registrierungseinträge im System. Kombinieren Sie das mit WinSxS, und Sie haben selbst ein noch größeres Durcheinander und Platzverschwendung, als es sein sollte. `:-(` Synetech vor 12 Jahren 1
Ich habe jetzt eine Weile gewartet, um eine Antwort zu bekommen. Habe was andere gesagt haben aber keine Hilfe. Hoffentlich kann jemand endlich mit der passenden Lösung antworten. manchester050 . vor 12 Jahren 0
Mtone sagt: "Ich wiederhole, wenn eine Anwendung für .NET 3.5 entwickelt wurde, kann nicht erwartet werden, dass sie auf einer anderen .NET-Version zuverlässig ausgeführt wird." Microsoft sagt jedoch (unter http://bit.ly/IPYsQK) "Quellcode, der für eine Version von .NET Framework geschrieben wurde, sollte auf späteren Versionen von .NET Framework und Binärdateien kompiliert werden, die auf einer Version von .NET Framework ausgeführt werden sollte sich in späteren Versionen von .NET Framework identisch verhalten. " Ja, ich sehe es sollte "sollte", aber trotzdem "kann nicht erwartet werden, dass es zuverlässig läuft", scheint zumindest eine Überbewertung zu sein. Dave Becker vor 12 Jahren 0
@ DaveBecker Interessant. Ich dachte, Anwendungen, die für eine bestimmte Version von .NET kompiliert wurden, würden im Allgemeinen nicht richtig initialisiert, wenn Sie nur eine neuere Version installiert haben (z. B. 4.0 und nichts anderes). Ich habe mich vielleicht geirrt! mtone vor 12 Jahren 0
Es ist möglich, dass die in einer früheren .NET-Version geschriebene Anwendung auf der späteren Version ausgeführt wird, jedoch nur, wenn der Autor Konfigurationseinstellungen enthält, die diese Flexibilität ermöglichen. Weitere Forschung ist erforderlich. Ich denke ich werde es eine Frage stellen! Dave Becker vor 12 Jahren 0
3
mtone

Als Antwort auf Ihren letzten Kommentar zu meiner Antwort sind die meisten der Meinung, dass es nicht genügend Informationen gibt, um eine präzise Lösung für Sie zu finden.

Die Neuinstallation von .NET war eine fundierte Vermutung, aber wir können nicht wissen, welche anderen Dateien / Registry-Einträge Ihre Bereinigungsdienstprogramme gelöscht haben und welche möglicherweise kritisch waren.

Meine erste Antwort lautet : Wenn die Neuinstallation der Anwendung nicht hilft, wenden Sie sich an Ihren Hersteller / Entwickler, um die Lösung zu finden. Der Hersteller weiß, welche Dateien beim Start der Anwendung erwartet werden, wir nicht!

Dann habe ich in Ihrem Profil festgestellt, dass Sie eine Frage zu stackoverflow gestellt haben, in der Sie angeben, dass Ihr C-Laufwerk "kaum noch kb übrig hat" - was wahrscheinlich Ihre Bereinigung ausgelöst hat. Nun, weißt du, das wäre das erste, was ich versuchen würde, wenn ich du wäre. Stellen Sie sicher, dass Sie immer mindestens 1 GB frei haben.

Ein paar MB freier Speicherplatz erfordern Probleme und können zu Fehlern beim Schließen führen, wenn versucht wird, Speicherplatz von Windows oder Ihren Anwendungen zuzuweisen. Dies würde auch dazu beitragen, die Notwendigkeit extremer Aufräumarbeiten zu vermeiden und wichtige Dateien versehentlich zu löschen.

Meine zweite Antwort lautet daher : Besorgen Sie sich eine neue (oder eine andere) größere Festplatte so schnell wie möglich. Wenn Ihre Anwendungen immer noch abstürzen, müssen Sie möglicherweise Windows und alle darauf befindlichen Anwendungen / Treiber erneut installieren. Es ist eine Menge Arbeit, aber letztendlich ist es eine hervorragende Lösung für Ihr Problem (lesen Sie: es wird es fast sicher beheben).

Schließlich sind Aufräumprogramme keine offiziellen Dienstprogramme. Es ist wahr, dass Windows dazu neigt, Sachen anzuhäufen, aber dass Bereinigungsprogramme gute Arbeit leisten, um sie zu reduzieren, ist umstritten. Der größte Teil des Windows-Wachstums stammt aus Bibliotheken (DLLs), Updates und verschiedenen installierten Anwendungen, mit denen die Dienstprogramme sowieso nicht versuchen sollten, sich mit zu viel zu beschäftigen. Temporäre Ordner sind von Zeit zu Zeit einfach von Hand aufzuräumen. Die beste Bereinigung, die Sie durchführen können, ist häufig das Deinstallieren von Anwendungen, die Sie nicht unbedingt benötigen. Weißt du, ich finde, dass die meisten Aufräumwerkzeuge mehr aufblähen als alles, was sie reinigen. Diese riesige Liste von Anti-Malware, die Sie installiert haben, scheint für den vorliegenden Job übertrieben zu sein.

Meine dritte Antwort lautet also : Mach das Aufräumen in Zukunft einfach. Der Speicherplatz ist so günstig, dass Sie alle Probleme vermeiden müssen, um einige Megabytes zu sparen.

Bevorzugen Sie die Deinstallation nicht verwendeter Anwendungen und löschen Sie von Zeit zu Zeit die Ordner "TEMP" von Hand. Vermeiden Sie es, möglichst viele Anwendungen zu installieren, nur um sie auszuprobieren - da dies zu einem unnötigen Windows-Wachstum beiträgt, das nur schwer wieder zu bekommen ist. Halten Sie sich im Idealfall an einen guten Virenschutz, einen guten Anti-Malware-Code und was auch immer Sie zum Arbeiten benötigen. Vermeiden Sie es, sich mit der Registry zu beschäftigen!

"Sie sollten sicherstellen, dass Sie mindestens ** 1 GB ** frei haben." Ich schlage vor, diese Aussage für die Zukunft zu prüfen, indem Sie sie in "Ändern Sie mindestens 10% der Kapazität Ihres Laufwerks ** frei." Mit der Zeit nimmt die Größe der durchschnittlichen Verbraucherfestplatte zu, so dass auch der zur Verfügung stehende Mindestspeicherplatz für eine optimale Leistung zur Verfügung steht. Dan Henderson vor 6 Jahren 0
1
PenguinCoder

Zunächst ist der Fehler (Some program application) has encountered a problem and needs to close. We are sorry for the inconvenience.eine vollständig generische Windows-Fehlermeldung. Wenn es leicht genug wäre zu sagen "(einige Programme) funktionierten nicht mehr, weil der Entwickler Fehler ID10-Tauf dem Speicherstapel nicht berücksichtigt hat ", dann wäre der generische Fehler wirklich nicht erforderlich!

Leider können Entwickler und Software-Ingenieure nicht jede und JEDE Sache berücksichtigen, die dazu führen könnte, dass ein Programm unerwartet abstürzt. Ja, es gibt einige Programme, die über "großartige" Fehlerbehandlungsmethoden verfügen, die eine Zufallszahl ausgeben, die "etwas" bedeutet. Um dies zu erreichen, bedeutet dies, dass der Entwickler diesen spezifischen Fehler berücksichtigt hat.

Einige Gründe für die generische Nachricht können folgende Ursachen haben:

  • Allgemeine Speicher- oder Ressourcenzugriffsfehler ( Segmentierungsfehler )
  • Unsachgemäße Antivirus-Einstellungen (Zugriff auf das Programm nicht möglich)
  • Fehler im Kompatibilitätsmodus (Führen Sie die Anwendung in einem Kompatibilitätsmodus für eine andere Windows-Version aus.)
  • Schlechte Codierungspraktiken durch Entwickler oder unzureichendes Squashing / Testen von Fehlern
  • Windows wertete API-Aufrufe ab, die von der Anwendung verwendet werden
  • Abhängigkeiten (andere Frameworks, DLLs, freigegebene Ressourcen) nicht aktuell oder verfügbar
  • usw usw

Es gibt wirklich keine Möglichkeit, die vielen verschiedenen Möglichkeiten aufzuzeigen, warum der Fehler auftritt. Sie sollten das Problem am besten beheben, indem Sie sich an den Softwareentwickler wenden und sicherstellen, dass Ihre Systembibliotheken / -ressourcen vollständig auf dem neuesten Stand sind und mit den von den Anwendungsanbietern festgelegten Anforderungen kompatibel sind.

1
SecurityMatt

"Die Anwendung ist auf ein Problem gestoßen und muss geschlossen werden. Wir entschuldigen uns für die Unannehmlichkeiten."

Dies ist immer eine Antwort darauf, dass die Anwendung etwas tut, was bedeutet, dass das Programm nicht sicher fortgesetzt werden kann.

  • Etwas in dem Prozess ist sehr schief gelaufen und der Prozess kann nicht mehr fortgesetzt werden (dies ist in der Regel der Heap, der feststellt, dass ein Heap-Überlauf oder eine Double-Free-Sicherheitsanfälligkeit ausgelöst wurde).

  • Das Programm hat versucht, Speicher zu lesen, zu schreiben oder auszuführen, der nicht vorhanden ist oder für den die Operation ungültig ist (z. B. wenn DEP Sie angehalten hat, Daten auf dem Stapel auszuführen).

  • Das Programm löste eine Ausnahme aus, und kein registrierter Handler wusste, wie er damit umgehen sollte.

Das Dialogfeld informiert Sie darüber, dass das Programm auf unkontrollierte Weise gestorben ist, während ein Absturzabbild des Programms an den Windows-Fehlerberichterstattungsdienst gesendet wird. Diese Crash-Dumps können von den Entwicklern des Programms angezeigt werden, um den Fehler zu beheben.

Dies ist kein Hinweis darauf, dass Sie von einem Virus angegriffen wurden. Dies ist ein Hinweis darauf, dass das Programm fehlerhaft ist. Die einzige Lösung ist, den Absturz-Dump an den ursprünglichen Entwickler des Programms (über WER) zu senden und nach Behebung des Fehlers auf die festgelegte Version zu aktualisieren.

0
Simon Verbeke

Im Allgemeinen bedeutet dies, dass im Programm eine Ausnahme aufgetreten ist (dies ist ein Fehler, der zum Absturz des Programms führt). Welche Ursachen dieser Fehler hat, hängt von der Anwendung ab. Daher ist es uns schwer zu sagen, was genau schief geht.

Bei allgemeinen Lösungen wird das Programm neu installiert oder die temporären Dateien gelöscht (die Bereinigungsdienstprogramme können sie möglicherweise nicht abfangen). Möglicherweise tritt eine Ausnahme in Bezug auf die Benutzerkontensteuerung auf. Versuchen Sie, das Programm als Administrator auszuführen (Rechtsklick, als Administrator ausführen). In einigen Programmen wird es auch durch DEP (Data Execution Protection, ein Sicherheitssystem) verursacht. Diese Seite erklärt, wie Sie es für Ihr Programm deaktivieren können.

Es besteht auch die Möglichkeit, dass dieses Programm versucht, eine Datei an einem Ort zu schreiben, auf den sie keinen Zugriff hat. Versuchen Sie, dem Programm, das Sie ausführen, Schreibrechte zu geben (Rechtsklick, Eigenschaften, Sicherheit).

Stellen Sie außerdem sicher, dass Sie die neuesten Updates für Windows und das jeweilige Programm installiert haben.

0
bbodenmiller

Versuchen Sie es mit einem Programm wie Soluto, das Abstürze erkennt und Ratschläge gibt, wie Sie das Problem beheben können, falls es verfügbar ist. Soluto verwendet Crowd Sourcing, um Abstürze zu erkennen und Korrekturen anzubieten.