[英]Service running out of TCP connections
我有一个Windows服务,它是使用c#.net 4.0创建的,它是一些事情的监视器-它上面有一个计时器,并且它有一个计时器,每5分钟运行一次。 因此它具有计时器控件,并且计时器中有一个Elapsed事件:
private void Timer_Elapsed(object sender, System.Events.ElapsedEventArgs e)
{
FileMonitor fileMon = new FileMonitor(url);
}
发生的是,在FileMonitor中,它使用TfsTeamProjectCollection类与TFS服务器项目建立了连接,如下所示:
TfsTeamProjectCollection tpc = new TfsTeamProjectCollection(url, new NetworkCredential( username, password, domain);
发生的事情是,我认为这会在方法Timer_Elapsed结束后立即自动关闭连接,但似乎没有,服务器用尽了TCP连接,其他服务无法再连接了。
所以我的问题有两个:
总体而言,使用FileMonitor时应该对服务本身做些什么-应该手动销毁它还是让垃圾回收销毁它?
TfsTeamProjectCollection对象实现IDisposable,因为它使用非托管资源。 与实现IDisposable接口的任何其他对象一样,使用完该对象后,应调用dispose方法。 如果您不这样做,那么它可以保留资源。
最简单的方法是将其包装在using语句中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.