2011-11-13 7 views
4

httpcontextが.NETでどのように機能するかの詳細を理解しようとしていますか?.NETでHttpContextがどのように動作するか

私が理解できなかったことは、HttpContextのクラスが静的なHttpContextオブジェクトのフィールドを持っていることです。したがって、クライアントからの各要求に対して、httpcontextのインスタンスを作成するかどうかを指定します。なぜ静的と定義されたのですか? 1つのアプリケーションだけが1つのhttpcontextを持つことができますか?

私は混乱しているので、質問をする方法が少し複雑になる可能性があります。私はそれが理解できることを願っています。事前に

おかげで、

答えて

7

あなたが静的メンバにアクセスし、それがスレッドに相対現在の要求を解決します。

いいえ、これは1つしかないことを意味し、Thread.Currentと同じ方法で1つのスレッドしか存在しないことを意味しません。各リクエストには異なるHttpContextがあります。

似たようなことを行う簡単な方法(私はそれがこのように実装されているかどうかわかりません)。

[ThreadStatic] 
public static string TryMeFromDifferentThreads; 
+0

他のスレッドでhttpcontextを作成する方法は?たとえば、アプリケーションがその時点でnullでないhttpcontextを持っている場合、別の要求が出たら、別のスレッドに別のhttpcontextを作成しますか?答えをありがとう。 –

+0

@Kaplanは本質的にはいですが、もっと複雑です - 特定のポイント(主に非同期要求/応答コンテキストアクセスに関する)間で単一のリクエストが実際にジャンプすることができます –

+0

私はそれの詳細を理解したい、読んでアドバイスしますか?あなたの素敵な説明に感謝します。 –

関連する問題