Was ist der beste Weg, um Anwendungsfehler und Protokolle per Internet an die Entwickler zu senden?

8

Als Autor einer C # -Anwendung habe ich festgestellt, dass die von Benutzern gemeldeten Probleme bei der Fehlerbehebung viel leichter sind, wenn ich auf die Ausnahmebestätigungen oder Debug-Protokolle zugreifen konnte.

Ich habe einen selbst entwickelten Protokollierungsmechanismus hinzugefügt, den der Benutzer ein- oder ausschalten kann. Ich möchte, dass der Benutzer die Protokolle über das Internet senden kann, damit ich die Protokolle auf den Fehler überprüfen kann.

Ich habe erwogen, entweder SMTPClient oder einen Webdienst zu verwenden, um die Informationen zu senden. SMTPClient funktioniert möglicherweise nicht, da Firewalls möglicherweise den ausgehenden SMTP-Zugriff blockieren. Wäre ein Webdienst beim Senden einer großen Datenmenge (möglicherweise 1 MB) problematisch?

Was würden Sie empfehlen, damit eine Anwendung Fehlerberichte direkt an Entwickler zur Überprüfung sendet?

BEARBEITEN: Erläuterung: Dies ist eine Windows-Anwendung, und wenn ein Fehler auftritt, möchte ich einen Dialog aufrufen, der den Fehler abschickt. Meine Frage bezieht sich auf den Mechanismus, um das Fehlerprotokoll von der Anwendung an mich (Entwickler) über das Internet zu übertragen.

    
Chris Thompson 24.05.2009, 02:59
quelle

6 Antworten

2

Wir verwenden 3 Methoden, wo ich arbeite

  • SMTP an ein dediziertes Postfach. Dies erfordert eine Menge Konfiguration und das Herumtanzen mit IT-Abteilungen großer Unternehmen, um herauszufinden, was ihr Mail-Server ist und wie er sich dagegen authentifizieren und senden kann. Dann gibt es Programme wie Norton Internet Security, die ausgehenden SMTP-Verkehr auf dem Client-Rechner blockieren können, die zusätzliche Schlüssel in den Betrieb werfen.
  • Einreichen zu einer asmx auf unserem Server. Dies ist unsere bevorzugte Methode, aber viele Dinge können in die Quere kommen. Es sind hauptsächlich Proxies, aber Norton kann auch eingreifen und dich runterziehen. Wenn ein Proxy involviert ist, renne weg: -)
  • HTTP POST mit HttpWebRequest und Mime-Typ von multipart / form-encoded. Es hat auch Proxy-und Firewall-Probleme, kann aber manchmal arbeiten, wo Asmx Einreichung fehlschlägt.

Viel Glück. Du hast recht, es ist viel einfacher zu debuggen, wenn du den Stack-Trace hast und vielleicht sogar einen Screenie von dem, was der arme alte Benutzer gemacht hat.

    
Dan F 24.05.2009, 03:36
quelle
3

Ein Weg, auf dem der Benutzer weiß, dass Sie es tun wollen. Bitten Sie sie um einen Proxy, fragen Sie sie nach einem E-Mail-Server, so etwas.

Die Sicherheitsinteressierten werden sehr nervös, wenn sie feststellen, dass Sie einen Socket oder etwas Ähnliches öffnen und Daten ohne Benachrichtigung senden.

Und zu Recht.

    
Charlie Martin 24.05.2009 03:01
quelle
3

Ich würde vorschlagen, NICHT alles zu senden (das gesamte Audit Ihrer Bewerbung).
Aber nur wenn der Benutzer es will ("Feedback" -Schaltfläche) oder wenn es eine explizite Ausnahme gibt, schwerwiegender Fehler, Problemzustand in der Anwendung.

Wir haben sowohl Webdienste als auch E-Mail (SMTPClient) verwendet. Meine Gedanken dazu

Webservice
GUT

  • Keine spezielle Konfiguration pro Benutzer
  • Größenbeschränkung, mehr als 5 MB-8 MB E-Mail sind möglich

SCHLECHT

  • Öffentlich sichtbar (Hacker spielen gerne mit diesen Dingen)
  • Zusätzliche Entwicklung zum Erstellen des Web-Service mit db back end
  • Späteres Erstellen von zusätzlichen Feldern ist schlecht
  • Änderungen im Web-Service sind nicht gut!

SMTPClient
GUT

  • Keine spezielle Konfiguration pro Benutzer
  • Die Anmeldung am öffentlichen Ordner macht die Suche / Filterung einfach (Gruppierung, ...)
  • Alle Daten zum Senden, Screenshots, Stacktrace, Benutzereinstellungen, ...
    - & gt; HTML
  • Änderungen im Protokollformat und in den Informationen sind einfach, da wir HTML-E-Mails verwendet haben

SCHLECHT

  • Spezielle Konfiguration pro Benutzer (SMTP-Server, E-Mail-Benutzer, ...)
  • Größenbeschränkung für E-Mails (5MB-8MB ??)
  • Die Protokollierung in db von E-Mails erfordert viel Entwicklung
Peter Gfader 24.05.2009 04:17
quelle
2

Sie können es selbst schreiben, oder Sie können etwas wie log4net verwenden, es kümmert sich um die Protokollierung der Ausnahme für Sie ...

    
Ali Shafai 24.05.2009 03:01
quelle
0

Ich möchte so etwas wie eine E-Mail an ein spezielles Postfach senden. So kann ich es einfach archivieren, durchsuchen oder ignorieren.

Auf der Client- / Senderseite denke ich, dass ein Popup-Angebot zum Senden der Protokolle eine gute Idee ist. Wenn Sie Windows verwenden, können Sie MAPI verwenden, um die E-Mail zu senden. Auf einem Unix-System funktioniert das "Mail" -Problem auf den meisten Systemen.

Sie können den Benutzer in der Bestätigungsnachricht zur Eingabe einer E-Mail-Adresse auffordern und ihm einige Optionen zum Senden (einschließlich Kopieren / Einfügen in den E-Mail-Client seiner Wahl) anbieten.

Eine Sache, die Sie NICHT tun sollten, ist das Senden der Informationen ohne die Erlaubnis des Benutzers.

    
rmeden 24.05.2009 03:13
quelle
0

Wenn Sie nicht erwarten, dass viele Berichte an einem einzigen Tag gesendet werden, können Sie ein Google Mail-Konto erstellen und diese dazu verwenden, die E-Mails zu senden, um den Benutzer zur Konfiguration eines SMTP-Servers zu zwingen. Nicht sicher, was die Bedingungen von Google Mail dafür sind.

Hier ist eine Klasse, die ich schrieb, die eine E-Mail mit einem Google Mail-Konto sendet ...

Offensichtlich gibt es hier einige Sicherheitsprobleme, als könnte jemand möglicherweise Zugriff auf Ihr Google Mail-Konto erhalten. Also, berücksichtigen Sie das.

Es gibt Methoden in dieser Klasse, um die E-Mail synchron oder asynchron zu senden.

%Vor%     
blak3r 19.06.2009 08:27
quelle