我有一个用C#编写的大型Winforms应用程序,它定期没有响应。一旦应用程序使用一个小时左右,似乎就会出现这个问题。准确的时间很难收集,因为用户经常去做一些事情,回到它并发现它没有反应。
我认为可以排除内存泄漏,因为我没有看到过多的内存使用情况(我已经要求用户发送任务管理器的屏幕截图,内存usagage与我在运行应用程序时看到的相同常)
同样,CPU使用率正常(单位数%)
由于我到目前为止无法在mydevelopment PC上重新创建该问题,因此我计划坐在其中一个受影响的用户旁边,并镜像用户执行的每个操作以重新创建此操作。 (我将设置一台笔记本电脑到RDP进入我的主电脑)
重新创建问题是一回事,但我需要找出应用程序中实际发生的事情。
有人能告诉我,如果在调试模式下运行(通过visual studio)就足够了,还是需要做一些不同的事情?
我搜索了一些帖子,我看到过提及分析软件,但我不确定这是否只会对一般性能问题或内存管理问题有所帮助。
或者,如果有人遇到过类似的冻结问题那么你对这种原因有什么建议吗?
一些技术细节:Aplication是C#,针对.NET 3.5编译,winforms GUI。有一些外部库(最重要的是ComponentFactory Krypton Suite)。数据访问是指Microsoft SQL Server 2005数据库。该解决方案包含39个项目,我不确定这可能与它有关吗?
任何建议/指示都将不胜感激。
答案 0 :(得分:0)
现在应用程序的工作更加可靠,有时候仍然会出现冻结问题,但这种问题并不像以前那么频繁。
该问题似乎与我正在使用的环境中存在的端点安全性(在本例中为思科安全代理)有关,应用程序已经列入白名单,并且已经大大减少了应用程序挂起的实例。我工作的开发系统没有这种端点安全性,所以它没有出现在测试的早期阶段。
感谢您的所有反馈,我认为仍然存在需要清理的线程和垃圾回收问题,希望这可以解决最后几个问题。