我正在研究一个问题,当从OperationContext检索扩展实例时,似乎在不同操作之间存在一些交叉污染。这是令人讨厌的并发性之一,难以复制问题。我强烈怀疑某种线程问题。我们在IIS7.0 / .NET 4集成模式下运行WCF服务。我们的扩展的相关部分如下:
public class CustomContext : IExtension<OperationContext>, ICustomContext
{
public CustomContext Current
{
get
{
return OperationContext.Current != null ? OperationContext.Current.Extensions.Find<CustomContext>() : null;
}
}
...
}
以上是从PostSharp方面调用的,我不确定这是否与之相关?鉴于以上是否有任何明显的条件,调用current可能会返回错误的CustomContext实例?对这样一个开放式问题抱歉。