OperationContext から拡張機能のインスタンスを取得する際に、異なる操作間で相互汚染が発生しているように見える問題を調査しています。これは、レプリケートが困難な同時実行性に基づく煩わしい問題の 1 つです。ある種のスレッドの問題を強く疑っています。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 インスタンスを返す可能性がある明らかな条件はありますか? このようなオープンエンドの質問をお詫びします。