什么时候WCF服务器中的静态对象被处置?

时间:2011-07-24 03:19:04

标签: wcf iis static destructor recycle

这是我的场景:我有一个静态对象,它将连接到并发许可证服务以获取许可证。我将在WCF服务中的某些非静态方法上使用此许可证。

这里的问题是,我知道这个静态对象将保留在周围,只要该对象正在使用,许可证就会被保留。但是,我还需要在通过调用并发许可证服务的发布方法来释放静态对象之前释放此许可证。

如果我不释放静态对象中保存的许可证,并发许可证服务将拒绝在一些我无法控制的空闲时间后重新颁发许可证...

现在问题来了。在WCF服务器端是否有一个事件让我知道IIS或其他什么即将处置或回收静态对象,以便我可以在它处置或回收之前在并发许可服务中释放许可证???

在处理这个静态对象时,我应该记住哪些事情;我应该使用Lock()还是Using() ??

换句话说,有没有办法为这种情况制作一个静态析构函数?这个析构函数很可能是由IIS调用的。

1 个答案:

答案 0 :(得分:0)

您可以通过转移到单个实例是idisposable的单例模式来解决您的问题。

相关问题