如何清理WCF方法

时间:2017-08-31 14:53:06

标签: .net multithreading wcf

我有一个使用BasicHttpBinding并在IIS中托管的旧版WCF Web服务。

Web服务操作方法使用ThreadStatic字段来保存在处理请求期间使用的状态数据。

我希望在每个操作完成后清理这些ThreadStatic字段,以便值不会泄漏"代码可能随后使用相同的线程池线程。

我天真地以为我可以在global.asax中的Application_EndRequest中这样做;但这似乎不起作用,因为它似乎在不同的线程上运行。

因此,我考虑使用替代方法,即使用IDispatchMessageInspector,并清除其ThreadStatic方法中的BeforeSendReply值。

在此之前,我想知道是否保证BeforeSendReply将在与Operation方法相同的线程上执行。任何人都可以告诉我,如果这是有保证的,如果有的话,指向权威的参考证实它?

0 个答案:

没有答案