1

.net 4では、useridなどのカスタム値をThread.CurrentThreadオブジェクトに格納することは可能ですか?

次のように、MessageInspectorのクライアント側のwcfクライアントのユーザーIDをAfterReceiveRequestメソッドに保存しようとしています。

request.Headers.Add(MessageHeader.CreateHeader("userid", string.Empty, userid));

サーバー側では、AfterReceiveRequestメソッドのThread.CurrentThreadで取得したいと思います。

これは可能ですか?

4

1 に答える 1

2

WCFはスレッドプールからのスレッドをランダムに使用し、スレッドがリサイクルされるときにThreadStatic変数は再初期化されないため、ThreadStaticは推奨されません。また、複数のWCF呼び出しがあるセッションがある場合、同じサービスインスタンスがスレッドを呼び出しから呼び出しに切り替える可能性があります。

OperationContext拡張機能を作成する必要があります。

現在のWCF呼び出しのデータをどこに保存するかを参照してください。ThreadStaticは安全ですか?

于 2012-09-10T05:04:20.137 に答える