2012-09-28 12 views
9

静的なクラスとメソッドのスコープがASP.NETユーザーセッションのスコープとどのように対話するかを説明するために、 asp.netのウェブサイトにASP.NETスタティッククラスとasp.netセッション

  1. ユーザAがログイン:ここ

    は私の質問を説明し、より具体的な状況です。

  2. ユーザーAは、何らかのデータを初期化する静的メソッドを使用します。
  3. ユーザーBは、同じasp.net Webサイトにログインします。
  4. ユーザーBが同じ静的メソッドをヒットします。

は、ユーザBがそれに当たる一度データがすでに初期化されていますか?

またどのような利用者Bは、ウェブサイトを打つ前に、ユーザAのasp.netセッションの有効期限が切れた場合は?

答えて

11

プロセスが実行されている間は、静的データは有効です。タイプに付属しています。

初期化されたデータは、静的コンテキストにある場合、ユーザBは、メソッドに当たったとき、そして、それはすでに初期化されます。

セッションはここでは関連しません。プロセスのみです。

プロセスがリサイクルされます場合は、データが再初期化する必要があります。

2

は、これらの記事をチェックしてください:Why does my ASP.Net static function's "context" crossover between user sessions?要するに

What is the scope of a Static Class?

C# Static variables - scope and persistence

http://msdn.microsoft.com/en-us/library/ms173138(v=vs.100).aspx

:ユーザーBがそれに当たる一度

は、データが既に初期化されていますか?

はい

またどのような利用者Bは、ウェブサイトを打つ前に、ユーザAのasp.netセッションの有効期限が切れた場合は?

ユーザBは

静的データは、あなたの Webアプリケーションの全体のアプリケーションドメイン間で共有され、ユーザーが初期化されたデータにアクセスします。 ウェブアプリケーションのリクエストを処理するすべてのスレッドで共有されていますが、セッション/スレッド/ユーザにバインドされていませんが、ウェブアプリケーション全体として にバインドされています。