.NET 環境に有効な Session または static があるかどうかを知りたいです。私が必要としているのは、その値を維持するデータを格納する変数です。すべての ASP.NET ページ/C# フォームからアクセスできますが、アプリケーションを使用するすべてのユーザーにとって一意ではありません。
6 に答える
次に、答えはおそらくアプリケーションキャッシュでしょう。System.Web.Caching を見てください
キャッシュ オブジェクトの有効期間についてはいくつかの議論があるため、設定することができます。ユーザーは具体的ではありませんでしたが、これがどれくらい存続する必要があるかについてです。アプリケーションのリサイクル間?単一のインスタンスの存続期間中、インスタンス間である必要がありますか。キャッシュは、最も単純な要件で機能します。
Application Cache ではなく Application State を探していると思います。アプリケーション状態はセッション状態と同じように機能しますが、すべてのセッション間で共有されます。
使用例:
Application["Message"] = "Welcome to my Website";
詳細: http://www.codeproject.com/Articles/87316/A-walkthrough-to-Application-State
アプリケーションスコープの変数でこれを処理してみてください。
最初に、Global.asax ファイルに次を追加します。
void Application_Start(object sender, EventArgs e)
{
[Other Stuff Already Here Omitted]
Application["MyVariable"] = "My Default value";
}
次に、任意のページで、これにアクセスできます。
var myVar = Application["MyVariable"];
クラスを静的として公開できます。これにより、すべてのセッションで使用できるようになりますが、そのアプリケーションインスタンスに制限されます。
答えはノーだ。そのレベルには「.Net環境」は存在しません。.Net コードは、ホストからも実行時の制限を受けます。2 つのホスト (他にもあります) を定義しましょう: IIS と "単にメインの exe" です。
IIS がホストするコードの場合、ホストがスレッドを作成 (または割り当て) し、このスレッドでコードを実行する環境で操作しています。ホスト自体が、プロセスをいつリセットするかを定義します。どのプロセスまたはスレッドがコードを実行しているかについて、何も想定することはできません。これは、ファームで iis について話すときに強化されます。
exe 内の単純なメイン コードの場合、オペレーティング システムはプロセスと最初の最初のスレッドを作成し、実行ポインターをメイン関数の最初のステートメントに設定します。
「静的」は、所有しているプロセスの存続期間中、状態を維持します。これは、.Net によって保証されます。
「セッション」は、静的プロパティよりもはるかに多くを処理するための特定の実装です。
ホストについても説明する質問を絞り込むことをお勧めします。iis の場合、答えは AppFabric キャッシュである可能性があります。
お役に立てれば