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.
Wir verwenden 3 Methoden, wo ich arbeite
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.
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.
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
SCHLECHT
SMTPClient
GUT
SCHLECHT
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 ...
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.
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%Tags und Links c# web-services error-reporting error-logging