如何正确处理WCF服务?

时间:2010-01-19 11:33:27

标签: wcf windows-services dispose idisposable

我的WCF服务为IDisposable,因为它使用ReadWriterLockSlim。当我用以下方法处理它们时:

public void Dispose()
{
    lockSlim.Dispose();
}

某些公共方法仍在运行(或接受新连接,我不知道),并且由于尝试使用已处置对象(在本例中为lockSlim)而触发异常。如果在停止Windows服务托管的WCF服务时,在停止所有正在运行的方法并为新连接关闭它之后调用Dispose方法会更好。但它似乎必须手动完成。有快捷方式或示例吗?

1 个答案:

答案 0 :(得分:1)

我认为没有必要处置LockSlim对象。在服务停止时,请调用ServiceHost.Close()。所有的线程都会中断它的工作,所有的链接都会被破坏,Garbage colector会关注内存。 ReadWriterLockSlim不是关键资源。如果有帮助请告诉我