Laden...

Fehlerbericht für eigene Software

Erstellt von EvilMM vor 17 Jahren Letzter Beitrag vor 16 Jahren 3.620 Views
EvilMM Themenstarter:in
318 Beiträge seit 2006
vor 17 Jahren
Fehlerbericht für eigene Software

Hallo,
ich bin auf der Suche nach einem Bug Reporting Tool für meine C#-Anwendung. Ziel soll es sein bei einem Ausnahmefehler eine Mail an mich zu verschicken mit allen nötigen Informationen. Ähnlich dem Windows-Fehlerbericht.

Kennt jemand ein solches Projekt? Für C++ hab ich schon zwei gefunden, aber keins für C#

R
494 Beiträge seit 2006
vor 17 Jahren

Im Prinzip können das die meisten logging Frameworks wie log4net. Einfach für bestimmte Fehler keinen FileProvider sondern eben nen Email Provider und schon bekommst du ne Email sollte da was geloggt werden.

871 Beiträge seit 2005
vor 17 Jahren

Hallo EvilMM,

ich habe das bei meinen (Firmeninternen) Anwendungen so gehandhabt, dass ich einen Custom Exception Handler (AppDomain.UnhandledException und Application.ThreadException) benutze, der bei einem schwerwiegenden und nicht behandelbaren Fehler folgendes durchführt:

1.) Dem User ein nettes Window mit der Beschreibung der aufgetretenen Exception darstellen.
2.) Die komplette Exception mittels SMTP an ein vordefiniertes Postfach versenden.

Eventuell wäre das auch der Weg für dich.

Grüsse, Egon

EvilMM Themenstarter:in
318 Beiträge seit 2006
vor 17 Jahren

Das klingt gut, einfach die "Haupt-Exception" wenn ich sie mal so nennen darf abfangen und entsprechend darauf reagieren. Da hab ich noch gar nicht dran gedacht.

Das werde ich mal versuchen. Vielen Dank!

56 Beiträge seit 2006
vor 17 Jahren

Moin!

Ich verwende in meinen Projekten die Assembly aus dem Anhang. Hervorgegangen ist es aus dem Projekt zu einem Artikel der dotnetpro. Ich habe es ein klein wenig für meine Bedürfnisse angepasst und hierin diesem Paket auch noch die Mapi-Klasse, die ich zum versenden der Emails verwende dazugepackt.

Für den korrekten Emailversand des Fehlers müssen nur die Konstanten in der ExceptionInfoDialog-Klasse angepasst werden.

Der Aufruf erfolgt dann z.B. so:

try
{
.....
}
catch(Exception ex)
{
  ExceptionInfoDialog.ShowExceptionDialog(ex);
}

Der Fehler-Dialog sind dann etwa so aus:

Unbehandelte Exceptions werden bei mir in Windows-Anwendungen in der Program.cs so abgefangen:


        static void Main()
        {
            Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new MainForm());
            
        }

        static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e)
        {
            ExceptionInfo exceptionInfo = new ExceptionInfo(e.Exception);

            ExceptionInfoDialog exceptionDialog = new ExceptionInfoDialog(exceptionInfo);
            exceptionDialog.TitleText = string.Format("{0} hat ein Problem festgestellt und muss beendet werden. Klicken Sie auf \"Erweitert\", um sich detaillierte Informationen anzeigen zu lassen!", Application.ProductName);
            exceptionDialog.UnhandledException = true;
            exceptionDialog.ShowAppRestartCheckBox = true;
            exceptionDialog.ShowReportErrorLabel = true;
            ShowDebugButton(exceptionDialog);
            exceptionDialog.ShowDialog();
            exceptionDialog.Dispose();
        }

        [Conditional("DEBUG")]
        private static void ShowDebugButton(ExceptionInfoDialog exceptionDialog)
        {
            exceptionDialog.ShowDebugButton = true;
        }

bis denne
Guido

S
8.746 Beiträge seit 2005
vor 17 Jahren

Was ähnliches von Codeproject:

http://www.codeproject.com/dotnet/ExceptionHandling.asp

Highlights hier: Email, Screenshots. Verhalten via .config einstellbar.

3.825 Beiträge seit 2006
vor 17 Jahren

Hallo Astan,

was führt denn der "Debug"-Button für einen Code aus ?

Grüße Bernd

Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3

190 Beiträge seit 2005
vor 17 Jahren

Original von Astan212
Moin!

Ich verwende in meinen Projekten die Assembly aus dem Anhang. Hervorgegangen ist es aus dem Projekt zu einem Artikel der dotnetpro. Ich habe es ein klein wenig für meine Bedürfnisse angepasst und hierin diesem Paket auch noch die Mapi-Klasse, die ich zum versenden der Emails verwende dazugepackt.
:
:

Feine Sache. Wie sieht es mit dem Einsatz in kommerziellen Projekten aus? Du baust auf einen Artikel aus der dotnetpro auf. Kannst du mal die Ausgabe nennen?

Danke. Gruß cx°

L
770 Beiträge seit 2006
vor 17 Jahren

hallo cx,

das habe ich auch bereits angefragt, aber habe bis jetzt leider keine antwort erhalten.

würde mich ja selbst um eine antwort freuen 🙂
lg

lg Lion

664 Beiträge seit 2005
vor 16 Jahren

Hallo,

ich habe bei der Redaktion von dotnetpro nachgefragt wie es um die kommerzielle Nutzung steht.
Laut Aussage von dotnetpro ist es gestattet die Komponente kommerziell zu Nutzen, falls man Abonnent ist oder man sich die entsprechende Ausgabe gekauft hat.
Es müsste sich um die Ausgabe 10/2006 handeln.

@BerndFfm:

Mit dem Debug Button wird ein Debugger gestartet und an den Prozess angehängt.

mfg

Christoph

2.921 Beiträge seit 2005
vor 16 Jahren

Zitat BerndFFM:

Hallo Astan,

was führt denn der "Debug"-Button für einen Code aus ?

Grüße Bernd

Er führt den Code Debug.Launch aus, damit sollte der Debugger an die Stelle springen, an der das Problem aufgetreten ist. So kann man sich den Code an dieser Stelle betrachten.

Seit der Erkenntnis, dass der Mensch eine Nachricht ist, erweist sich seine körperliche Existenzform als überflüssig.