通过电子邮件发送而不让用户知道

时间:2011-06-12 17:36:45

标签: c# email windows-phone-7 error-handling

我有一个用于Windows Phone的C#程序。它使用IsolatedStorage和相机和图像做了一些非常重CPU的事情。

偶尔,我的应用程序崩溃了。它发生在大约50次中,每次发生时,我最终对代码进行了一些小修改。我大多数时候总是阻止应用程序退出try-catch。

但是在使用该应用程序约3个月后,我认为它已准备好向公众发布。但是,我仍然希望收到有关崩溃的通知,因此我知道如何修复它们。

如何在不强迫用户按发送的情况下向自己发送电子邮件?

据我所知,用户并不真的想报告错误,因此如果他们看到这样的对话,可能会按“取消”。

编辑:此次崩溃只会包含“线上崩溃”字样以及导致崩溃的行号。

编辑II:哎呀,意味着每500-1000次崩溃。谢谢@Andrei。

编辑III:使用我的所有数据,似乎这个应用程序在我调试它的18000多次中只崩溃了五次。如果用户使用我的应用程序3个月的平均使用量估计为每天20次启动,那么这给我的应用程序造成了36,000的崩溃几率,这在我非常偏见的情况下对于大量使用的应用程序非常有用声音,图像和传感器。

6 个答案:

答案 0 :(得分:11)

在用户不知情的情况下传输信息是邪恶的。使用逆向心理学:

enter image description here

答案 1 :(得分:8)

  1. 使用try-catch修复崩溃并不能解决问题。治疗原因,而不是症状。
  2. 在未经用户同意的情况下发送错误的电子邮件,因为它可能包含个人信息,也可能是非法的。由于它也可能使用户花费发送数据,因此它在商业上也不太可行,因为它增加了用户的成本而没有给他带来真正的好处。
  3. 将崩溃报告发送到网站而不是电子邮件地址看起来更专业。
  4. 如果您不希望用户必须单击发送每个崩溃报告,您可能会尝试在安装应用程序时询问用户是否要提交崩溃信息。
  5. 谷歌搜索“silverlight上传文件”提供此link。可以帮到你。

答案 2 :(得分:4)

您是否可以通过POST请求将崩溃信息上传到网站?这可能更容易,然后让网站发送电子邮件,而不是用用户名发送(随机)电子邮件......

答案 3 :(得分:2)

除非Silverlight for WP7支持SmtpClient,否则将无法在电子邮件应用程序之外发送邮件。

然而,有一些解决方法:

  1. 创建一个Web服务来捕获您的wp7可以尝试向其发送请求的数据,
  2. 只需使用电子邮件功能,希望用户点击发送(您会感到惊讶)
  3. 使用像Flurry这样具有OnError事件记录的服务,并将其放在未处理的异常处理程序中。
  4. 使用电子邮件Web服务代理向您发送电子邮件。

答案 4 :(得分:2)

嗯,此文件中有WPAppManifest.xml,您可以指定用户需要接受的内容 这是电子邮件的事情:http://www.ginktage.com/2011/04/how-to-send-email-in-windows-phone-7-using-c/ 我认为这可以解决你的问题 这对我来说是对的:http://www.preemptive.com/products/runtime-intelligence/compare-editions 对于WP7 Developer来说是免费的。 您可以跟踪用户的应用程序使用情况。你会看到有多少人你的应用程序使用了多长时间,我想如果它崩溃了......

答案 5 :(得分:0)

正如其他人所说,如果没有他知道,你很幸运地无法以用户身份发送电子邮件 - 但你可以使用网络服务。

为了改善这一点,我创建了堆栈跟踪的MD5哈希值,并首先检查崩溃是否发生在之前,并且只有在之前没有发生崩溃时,我才发送崩溃报告。

但我也不再问用户了。他们只是不会这样做。我先删除所有个人数据。