分析使用 TopShelf 的应用程序

Posted

技术标签:

【中文标题】分析使用 TopShelf 的应用程序【英文标题】:Profiling an application that uses TopShelf 【发布时间】:2012-08-08 05:57:57 【问题描述】:

我正在使用TopShelf 运行一个 .net 应用程序,其中一部分是处理数据并将其保存到 Sql Server 数据库中。

我发现这个过程很慢,所以我想研究分析应用程序,看看在方法调用等方面是否存在任何主要瓶颈,但是,由于 TopShelf 正在运行应用程序,我的任何分析工具使用只是坐在主程序中的 Run 方法上,不显示其余方法的任何结果。

有没有办法让分析工具在 TopShelf 运行应用程序的位置之后继续分析?

【问题讨论】:

【参考方案1】:

使用 Topshelf,您可以将服务作为控制台应用程序运行,以进行调试和分析。为此,请确保未安装您的服务,只需从控制台运行它(或将其设置为程序以在您的分析器中进行分析)。然后,一旦您的服务运行了足够的时间以获得良好的配置文件跟踪,请在控制台中使用 Control+C 将其停止,它会优雅地退出,从而使配置文件能够获得良好的跟踪。

我一直在我的系统上使用 dotTRACE。

【讨论】:

我现在正在使用 Topshelf 并且应用程序在控制台中运行正常,现在我想尝试追踪我认为是内存泄漏的原因。我尝试开始分析并启动控制台应用程序并立即被杀死。有什么想法吗? 我确实找到了这篇文章blogs.msdn.com/b/dotnet/archive/2013/04/04/…,但它并没有具体解决我的错误。 :-/

以上是关于分析使用 TopShelf 的应用程序的主要内容,如果未能解决你的问题,请参考以下文章

使用 Topshelf 创建 Windows 服务

Topshelf的使用

使用Topshelf创建Windows服务

csharp 定期从Topshelf Windows服务调用多个处理程序(使用System.Threading.Timer)

topshelf包装redis为windows服务

如何检测 Topshelf 是不是在控制台模式下运行