7

Во время использования приложения появляется следующее сообщение об ошибке (в зависимости от версии Windows):

Windows XP

[имя приложения] столкнулся с проблемой и должен быть закрыт. Приносим свои извинения за неудобства.

Windows Vista, Windows 7, Windows 8

[имя приложения] перестало работать

После этого приложение закрывается. Почему приложения "нужно закрыть" или "перестать работать" и что я могу с этим сделать?

7 ответов7

5

Прежде всего, эта ошибка не ваша вина.

Некоторые программисты забыли обработать какую-то ошибку в своей программе, поэтому она перестала работать.

Конечно, проблема не должна быть в самом приложении (так программатор с крючка). Это может быть в Windows или во время выполнения MSVC, или во время выполнения .Net, или в драйверах вашей видеокарты, или что-то еще (именно поэтому вам всегда говорят устанавливать все обновления, прежде чем обращаться в службу поддержки).

Таким образом, вы получили все это, но проблема остается. Что теперь?

Что ж, теперь осталось только то, что рассматриваемое приложение неисправно, и программист не взялся за это (A-HA!). Так что это проблема автора программного обеспечения. Поэтому свяжитесь с ними и спросите, могут ли они помочь вам и решить эту проблему.

Но что, если они скажут мне, что их программное обеспечение идеально, я единственная с этой проблемой, и, как правило, это моя вина?

Теперь самое интересное. Вы можете найти фактическую причину вашего сообщения об ошибке.
Что на самом деле приложение сообщило операционной системе, которая заставила операционную систему работать, " Вам нужно закрыть себя!«?

Для этого в вашем распоряжении много инструментов.

  • Лог-файлы
  • Журнал событий Windows
  • Монитор процесса

Если рассматриваемое приложение записывает какие-либо файлы журналов, они могут быть золотыми в поисках причины проблемы вашего приложения. Прочитайте их и обсудите возможные сообщения об ошибках здесь.

Журнал событий Windows наверняка будет содержать некоторую информацию о сбойном приложении. Если это действительно приложение .Net, вам может даже повезти, и вы сможете извлечь стек вызовов из журнала (что было бы очень полезно для разработчиков).

Если ничего не помогает, обратитесь к Process Monitor. Process Monitor - это инструмент, который регистрирует все коммуникации между приложением и операционной системой (так сказать). Таким образом, в полученных захваченных данных вы могли точно увидеть, какую функцию вызвало приложение, что привело к необработанному состоянию ошибки. Это может быть что-то тривиальное, например, попытка получить доступ к несуществующему файлу или объекту реестра. Но обнаружение того, что один вызов в журнале может занять много времени, и если у вас нет опыта разработки программного обеспечения, вы, скорее всего, не слишком далеко продвинетесь в этом подходе.

Если это заставит вас сказать: « Ну, это вряд ли поможет мне решить мою проблему », тогда вы, вероятно, правы. Хотя может быть забавно пытаться отследить подобную проблему для определенных людей, обычно это работа человека, который написал неисправное программное обеспечение.

Они гораздо лучше оснащены, чтобы найти проблему, чем вы. Правильный отчет об ошибках иногда может иметь большое значение.

4

Деинсталлировали предыдущие версии .NET Framework и установили 4.0

Никогда не делайте этого, вы не должны удалять .NET Framework. Идея этих версий заключается в том, что когда Microsoft совершенствует и вносит изменения в .NET Framework, они могут (и часто делают) нарушать совместимость программ, которые были разработаны в предыдущих версиях .NET.

Чтобы избежать этой проблемы, новая версия .NET выпущена и может быть установлена рядом с другими. Windowss управляет ими корректно, а затем загружает любую версию, которую запрашивает программа. Это позволяет без проблем запускать как старые, так и новые программы.

Я повторяю, когда приложение разработано для .NET 3.5, нельзя ожидать , что оно будет надежно работать на любой другой версии .NET.

Поскольку в одном из ваших комментариев упоминается, что ваше «пользовательское программное обеспечение всегда работало до удаления предыдущей версии .NET», я собираюсь предложить вам переустановить их. Самый простой способ сделать это - переустановить приложение - они обычно включают соответствующий установщик .NET, который им нужен.

3

В ответ на ваш последний комментарий к моему ответу, я думаю, что большинство согласится с тем, что недостаточно информации, чтобы предоставить вам точное решение.

Переустановка .NET была обоснованным предположением, но мы не можем знать, какие другие файлы / записи реестра были удалены вашими утилитами очистки, и какие из них могли быть критическими.

Мой первый ответ: если переустановка приложения не помогает, обратитесь к поставщику / разработчику, чтобы выяснить это. Производитель знает, какие файлы ожидаются при запуске приложения, а мы нет!

Затем я заметил, что в вашем профиле вы разместили вопрос на stackoverflow, в котором вы указываете, что на вашем диске C "едва осталось килобайт" - что, вероятно, инициировало вашу очистку. Ну, ты знаешь, это было бы первым, что я бы попытался исправить на твоем месте. Вы должны всегда иметь как минимум 1 ГБ свободного.

Несколько мегабайт свободного места требуют проблем и, безусловно, могут вызвать "необходимость закрыть" ошибки, если пространство будет выделено окнами или вашими приложениями. Также это поможет избежать необходимости экстремальной очистки и непреднамеренного удаления важных файлов.

Таким образом, мой второй ответ: получить новый (или использовать другой) больший основной жесткий диск как можно скорее. Если ваши приложения по-прежнему аварийно завершают работу, вам может потребоваться переустановить Windows и все приложения / драйверы на ней. Это большая работа, но в конечном итоге это отличное решение вашей проблемы (читай: почти наверняка это исправит).

Наконец, утилиты очистки не являются официальными утилитами. Это правда, что Windows, как правило, накапливаются вещи, но что по очистке коммунальных услуг делают хорошую работу в зачистки вниз спорно. Большая часть роста Windows происходит из библиотек (DLL), а также обновлений и различных установленных приложений, которые утилиты не должны пытаться связываться с слишком большим количеством в любом случае. Временные папки легко очищаются вручную. Часто лучшая очистка, которую вы можете сделать, - это удаление приложений, которые вам абсолютно не нужны. Вы знаете, я нахожу, что большинство инструментов очистки добавляют больше раздувания, чем все, что они чистят. Этот огромный список антивирусных программ, которые вы установили, также кажется излишним для этой работы.

Итак, мой третий ответ: будьте осторожны с уборкой в будущем. Дисковое пространство достаточно дешево, чтобы вы могли избежать всех этих проблем, чтобы сэкономить несколько мегабайт.

Избавьтесь от удаления неиспользуемых приложений и время от времени удаляйте папки "TEMP" вручную. Насколько это возможно, избегайте установки многих приложений только для того, чтобы попробовать их - так как это способствует ненужному росту окон, который трудно вернуть. В идеале придерживайтесь одного хорошего антивируса, одного хорошего антивируса и всего, что вам нужно для работы. Избегайте возни с реестром!

1

"Приложение столкнулось с проблемой и должно быть закрыто. Приносим свои извинения за неудобства"

Это всегда ответ приложения, которое делает что-то, что означает, что программа не может безопасно продолжаться.

  • Что-то в процессе пошло очень плохо, и процесс больше не может продолжаться (обычно это куча, которая замечает переполнение кучи или срабатывает двойная свободная уязвимость).

  • Программа пыталась прочитать, записать или выполнить память, которой там нет или для которой операция недопустима (например, DEP останавливает выполнение данных в стеке).

  • Программа вызвала исключение, и ни один зарегистрированный обработчик не знал, как с ним справиться.

Диалоговое окно Windows уведомляет вас о том, что программа умерла неконтролируемым образом, в то время как требуется аварийный дамп программы для отправки в службу отчетов об ошибках Windows. Эти аварийные дампы могут быть просмотрены разработчиками программы, чтобы попытаться исправить ошибку.

Это не признак того, что вы были атакованы вирусом. Это признак того, что программа неисправна. Единственное решение - отправить аварийный дамп исходному разработчику программы (через WER) и обновить его до фиксированной версии после исправления ошибки.

1

Во-первых, ошибка (Some program application) has encountered a problem and needs to close. We are sorry for the inconvenience. это совершенно общее сообщение об ошибке Windows Если было бы достаточно просто сказать «(некоторые программы) перестали работать, потому что разработчик не учел ошибку ID10-T в стеке памяти», то общая ошибка действительно не понадобилась бы!

Увы, разработчики и разработчики программного обеспечения не могут учитывать каждую и каждую отдельную вещь, которая может вызвать неожиданный сбой программы. Да, есть некоторые программы, которые имеют "отличные" методы обработки ошибок, которые выбрасывают случайные числа, которые означают «что-то», но даже для того, чтобы получить это, это означает, что разработчик учел ЭТО конкретную ошибку.

Некоторые причины, по которым может быть дано общее сообщение, связаны с такими вещами, как:

  • Общие ошибки доступа к памяти или ресурсам (ошибка сегментации)
  • Неправильные настройки антивируса (запрет доступа к программе)
  • Ошибки режима совместимости (попробуйте запустить приложение в режиме совместимости для другой версии Windows)
  • Плохая практика кодирования разработчиком или недостаточное устранение ошибок / тестирование
  • Windows не поддерживает вызовы API, используемые приложением
  • Зависимости (другие платформы, библиотеки DLL, общие ресурсы) не обновлены или недоступны
  • и т. д.

На самом деле нет никакого способа перечислить множество различных возможностей возникновения ошибки. Лучше всего решить эту проблему, посоветовавшись с разработчиком программного обеспечения и убедившись, что системные библиотеки / ресурсы полностью обновлены и совместимы с указанными требованиями поставщиков приложений.

0

Попробуйте использовать такую программу, как Soluto, которая обнаруживает сбои и предлагает советы по устранению проблемы, если она доступна. Soluto использует краудсорсинг для обнаружения сбоев и исправления ошибок.

0

Обычно это означает, что в программе возникла исключительная ситуация (это ошибка, которая приведет к аварийному завершению работы программы). Причина этой ошибки зависит от приложения, поэтому нам сложно сказать, что именно происходит не так.

Общие решения - переустановка программы или удаление ее временных файлов (утилиты очистки могут их не перехватить). Возможно, возникла исключительная ситуация, связанная с управлением учетными записями пользователей, поэтому попробуйте запустить программу от имени администратора (щелкните правой кнопкой мыши, запустите от имени администратора). В некоторых программах это также вызвано DEP (Data Execution Protection, система безопасности). На этой странице объясняется, как отключить его для вашей программы.

Также существует вероятность того, что эта программа попытается записать файл в место, к которому у нее нет доступа. Попробуйте дать программе, которую вы запускаете, права на запись (щелчок правой кнопкой мыши, свойства, безопасность)

Также убедитесь, что вы установили последние обновления для Windows и этой конкретной программы.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .