从 C# 应用程序自动收集统计信息

问题描述 投票:0回答:3

我已经制作了一个 C# 应用程序,现在我想创建 自定义调查(实际上是自动发送数据给我,关于 - 崩溃、使用持续时间等)来增强我的应用程序。

我该怎么做?

c# statistics web-statistics
3个回答
2
投票

你可以这样做:

  1. 在您的服务器上托管一个REST服务,常见的方法是在ASP.NET MVC项目中添加WebAPI控制器。
  2. 在客户端应用程序上创建一个
    System.Threading.Timer
    实例并设置所需的计划来发送统计信息。或者只是在用户每次启动您的应用程序时发送它们。
  3. 使用
    WebClient/HttpClient
    将统计数据发送到您的 REST 服务。

教程:

ASP.NET Web API 2 入门(C#)

从 .NET 客户端调用 Web API (C#)


2
投票

对于您的这一评论受到的粗暴对待,我们深表歉意。我们中的许多人都明白您并不是要求我们为您编写代码,而且我认为您有一个合理的问题。

您可能还想了解 .Net Trace 功能。虽然您不会自动收到发送给您的数据,但有一个内置的、易于使用的、不显眼的框架,可以让您收集统计数据。以下是一些可查看的链接:

跟踪类

如何在代码中添加跟踪语句

另请参阅

跟踪监听器

就这样吧。另一种可能的方法来解决这个问题。


0
投票

您自己的服务需要大量工作来设置服务器来收集指标并生成报告,而存在第 3 方服务,它为应用程序指标和异常报告提供全面的端到端解决方案。我曾与 sentry.io 合作过。它们是为大型复杂的后端系统构建的,但它在小型 C# WPF 桌面应用程序的上下文中对我来说效果很好。只需大约十行代码即可“开始”。例如,这将启动并运行异常报告: using System.Windows; public partial class App : Application { public App() { SentrySdk.Init(o => { // Tells which project in Sentry to send events to: o.Dsn = "https://example.ingest.sentry.io/x"; // Enable Global Mode since this is a client app o.IsGlobalModeEnabled = true; }); DispatcherUnhandledException += App_DispatcherUnhandledException; } void App_DispatcherUnhandledException(object sender, DispatcherUnhandledExceptionEventArgs e) { SentrySdk.CaptureException(e.Exception); // If you want to avoid the application from crashing: e.Handled = true; } }

我相信
mixpanel

rollbar提供类似的东西。

© www.soinside.com 2019 - 2024. All rights reserved.