套接字服务器内存不断增加

时间:2012-04-27 18:27:08

标签: c# socketserver

我们有一个用C#.Net 3.5开发的套接字服务器。每当客户端断开连接并连接时,我都会看到服务器内存使用量增加。如果未提供有效凭据,服务器将断开客户端连接。

当客户端尝试使用无效凭据连接时,会保留更多内存,并且似乎永远不会放弃。客户端尝试每秒重新连接一次。以下是处理断开连接的代码。只要客户端断开连接并在遇到读写操作错误时,就会调用此代码。

有人可以指导我如何调试/修复此问题吗?

2 个答案:

答案 0 :(得分:0)

可能是你将state.workSocket和state设置为null,而没有机会处置它们。

答案 1 :(得分:0)

您如何衡量内存使用情况?

如果机器上没有内存压力,GC将不会经常执行收集。因此,即使已经处理了内存,任务管理器中显示的内存使用量也会增加。

您可以尝试添加一些GC.Collect调用来强制GC运行 - 这将显示您是否实际泄漏内存。 (不要在生产版本中留下Collect调用。)

MSDN文章:Memory Usage Auditing For .NET Applications