2010-01-19 83 views
2

我的WCF服务是IDisposable,因为它使用的是ReadWriterLockSlim。当我在下面的方法处理两个人:如何正确地处理WCF服务?

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

是一些公共方法仍在运行(或接受新的连接,我不知道),并触发因使用设置的尝试的例外对象(在这种情况下是lockSlim)。如果在停止Windows Service托管WCF服务时停止所有正在运行的方法并关闭新连接,将调用Dispose方法,这样会更好。但似乎必须手动完成。有什么捷径或例子?

+0

你能解释一个WCF服务 – 2010-01-19 11:48:54

+0

您ReadWriterLockSlim使用@米奇我使用它是有益的一个'[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single,ConcurrencyMode = ConcurrencyMode.Multiple)]'所以我需要创建手动锁 – 2010-01-19 12:06:18

回答

1

我认为没有必要去配置LockSlim对象。在服务停止时,调用ServiceHost.Close()。所有的线程都会中断它的工作,所有的链接都会被破坏,并且垃圾收集器会关注内存。 ReadWriterLockSlim不是关键资源。请让我知道如果

+0

也许你是对的。 – 2010-01-25 13:16:31

+3

这个问题有一个答案很好,但遗憾的是答案没有涵盖字面问题。这些问题出现在Google和StackOverflow搜索中,并且很少有人和问问题的人完全一样,这意味着在提问者的问题解决了的同时,留下了一个无用的未解答的问题来嘲弄下一位有合理理由想要回答问题的读者...... – 2011-06-24 19:23:09