5

アジャイルAsp.Netリクエストの処理方法に関する多くのドキュメントを見てきましたか?知りたいのは、WCFリクエストの処理と同じ場合です。Wcf要求の処理を開始するスレッドがそれを終了するという事実に頼ることができますか?

多くの場所でThreadStatic変数が使用されるWcfアプリケーションを維持しています。コードは機能していますが、信頼できますか?変更する価値はありますか、それともそのままにしておくべきですか?

4

1 に答える 1

4

ServiceBehaviorWCF サービスを作成するときに、サービス実装クラスを属性で装飾することにより、スレッド化およびサービスのインスタンス化動作を設定できます。

[ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Single)]
class SingleCachingHttpFetcher : IHttpFetcher

上記のコード スニペットは、http://msdn.microsoft.com/en-us/library/system.servicemodel.servicebehaviorattribute.concurrencymode.aspx からのものです

EDIT
もう少し調査して、この記事を見つけました: http://blogs.microsoft.co.il/blogs/applisec/archive/2009/11/23/wcf-thread-affinity-and-synchronization.aspx。基本的に、いいえ、リクエストを開始した同じスレッドがそれを終了するスレッドになるとは確信できません。

EDIT 2この質問はStackOverflow
で以前に議論されました。シングル スレッド アパートメントを強制する OperationBehavior の作成方法に関する説明があるWCF サービス STA (シングル スレッド) の作成方法にリンクしていますこの例では、GUI コンポーネントの呼び出しを扱っていますが、他のシングル スレッドの要件でも機能するはずです。

于 2010-03-01T15:23:21.477 に答える