Не удается запустить отладку: .NET 4.0, Windows 2003 server - PullRequest
0 голосов
/ 05 декабря 2010

У меня на рабочем сервере запущено консольное приложение .NET 4.0.Приложение запускается на специальной основе, компилируется как отладочная сборка, и все символы отладки отправляются на сервер с помощью exe.

Когда в приложении возникает исключение, я ожидаю, что оноумрет без изящества и выведет стек на консоль, как должно делать любое старое консольное приложение.Вместо этого я вижу следующее:

  1. Появляется окно отладчика JIT с запросом на отладку.
  2. Если я скажу «да», то запустится какая-то крайне ограниченная версия VS 2005. Я брошен на ассемблер и не вижу исходный код или имя файла.Это относится ко всем уровням трассировки стека.
  3. Если я скажу «нет», в консоль вообще не будет записано никакой информации.

Я попытался запустить этокак в оболочке powershell, так и в традиционной консоли cmd с одинаковым эффектом.

Сервер работает на ASP.NET 4.0 и не имеет проблем с возвратом этих ошибок в браузер.

Я хотел быпросто посмотрите истинную ошибку и стек, напечатанный на консоль, без появления JIT.Помимо глобального улова и написания, каковы мои варианты?

Ответы [ 2 ]

1 голос
/ 05 декабря 2010
using System;

class Program {
    static void Main(string[] args) {
        AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
        throw new Exception("test");
    }

    static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e) {
        Console.WriteLine(e.ExceptionObject.ToString());
        Console.ReadLine();
        Environment.Exit(1);
    }
}
0 голосов
/ 05 декабря 2010

Ваш лучший вариант - использовать Windbg для отладки и анализа приложения: http://www.microsoft.com/whdc/devtools/debugging/default.mspx

Вы можете использовать расширение SOSEX для управляемой отладки в Windbg: http://www.stevestechspot.com/

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