問題タブ [session-state]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
1534 参照

asp.net - Webセッション状態にCookieを使用する-落とし穴は何ですか?

インプロセスセッション状態を使用することは、Webアプリケーションのスケーリングに関しては悪です(クラスターではうまく機能せず、サーバーがリサイクルされると爆破されます)。

少量の情報をセッション状態に保持する必要があると仮定すると、特定の状態サーバー/データベースではなく、この目的で暗号化されたCookieアイテムを使用することの欠点は何ですか?

明らかに、Cookieを使用すると、ネットワークオーバーヘッドがわずかに発生します。明らかに、クライアントのブラウザ/モバイルデバイスでCookieが有効になっていることを前提として操作します。

アプローチで他にどのような落とし穴を見ることができますか?

これは、シンプルでスケーラブルで堅牢なセッションに適したオプションですか?

0 投票する
2 に答える
592 参照

.net - セッションの不正使用を追跡して排除するにはどうすればよいですか?

過去に、私たちの貧しい友人であるASP.NETセッションの状態をひどく悪用した開発者がいたことは間違いありません。セッションは、リクエスト間の追跡を支援したいと考えていますが、できることはそれだけです。それがいつまでも私たちと一緒に幸せに働くことができるように、私がその痛みを和らげるのを手伝ってください。

複数のメモリセッションでセッションサイズを監視できるツールを知っている人はいますか?現在、ロードバランサーでIPアフィニティがオンになっています。これは、セッションが非常に大きいため、セッションをメモリに保持したいためです。平均セッションサイズと個々のセッションの両方、どのアプリケーションがそれらにアクセスしているか、およびセッションに何が保存されているかを監視できるようにしたいと考えています。

この心のこもった、思いやりのないセッション状態の乱用は今やめなければなりません。一緒に、私たちは答えを見つけることができます。

0 投票する
3 に答える
897 参照

asp.net - Amazon SimpleDB 用の ASP.NET セッション状態プロバイダーを構築しようとした人はいますか?

そうでない場合、サービスの構築を妨げる根本的な制限はありますか?

0 投票する
6 に答える
26495 参照

c# - SQL Server セッション データベースに接続できません

私のasp.netアプリケーションは毎日正常に動作します。先月まで、私の Web は次のように Sqlsession 状態サーバーで 2 ~ 3 回問題が発生し始めました。

Blockquote System.Web.HttpException タイプ 'System.Web.HttpException' の例外がスローされました。System.Web.HttpAsyncResult.End() で System.Web.SessionState.SessionStateModule.EndAcquireState(IAsyncResult ar) で System.Web.HttpApplication.AsyncEventExecutionStep.OnAsyncEventCompletion(IAsyncResult ar) で ============ ===================================== 例外: System.Web.HttpException SQL に接続できませんサーバー セッション データベース。System.Web.SessionState.SqlSessionStateStore.ThrowSqlConnectionException (SqlConnection 接続、例外 e) で) System.Web.SessionState.SqlSessionStateStore で。System.Web.SessionState.SqlSessionStateStore.GetItemExclusive(HttpContextコンテキスト、文字列ID、ブール値&ロック、TimeSpan&lockAge、オブジェクト&lockId、SessionStateActions& actionFlags) で System.Web.SessionState.SessionStateModule.GetSessionStateItem() で System.Web.SessionState.SessionStateModule.PollLockedSessionCallback(オブジェクト状態) ===================== ============================ 例外: System.InvalidOperationException タイムアウトが発生しました。プールから接続を取得する前に、タイムアウト期間が経過しました。これは、プールされたすべての接続が使用中で、最大プール サイズに達したために発生した可能性があります。System.Data.ProviderBase で。

次に、セッション db サーバーの調査を開始し、SQL クライアントで "exec sp_who" を実行した結果、AspState 操作の多くのレコードが見つかりました。

この種の問題の原因はわかりません。なぜなら、アプリケーションに重大な変更はなく、いくつかのバグが修正されただけだからです。

私のWebアプリケーションの環境の詳細は次のとおりです。

asp.net 3.5 (1.1 から変換) ... セッション状態の sqlmode を使用する 2 つのサーバー ファームで非常にうまく機能します。

誰かがこの問題について知っているか、調査のアイデアを得ていますか? ありがとう

0 投票する
7 に答える
8311 参照

asp.net - ASP.NET では、セッションと複数のタブをどのように処理しますか?

ユーザーがデータベースにレコードを追加できるように設計された ASP.net でアプリケーションを作成しました。ユーザーがレコードを追加すると、新しく追加されたレコードの ID 番号がセッションで設定されるようにページが設定されます。Response.Redirects.Redirects は「送信していただきありがとうございます」ページにリダイレクトし、元のページにリダイレクトして許可します。さらに編集。ユーザーは、この画面の [戻る] ボタンを使用して元のレコード追加ページに戻り、データを編集することもできます。

ただし、ユーザーが異なるタブまたはウィンドウで 2 つのドキュメントを作成しようとする可能性があるため、ID をセッションに保存することはあまり良い解決策ではないことがわかりました。また、リテラル コントロールで ID を設定しようとしましたが、これにより、ユーザーが [戻る] ボタンを使用すると、リテラル コントロールが ID に設定されず、編集される代わりに新しいレコードが追加されるという問題が発生します。

これに対する解決策はありますか?

0 投票する
5 に答える
12076 参照

c# - 外部 DLL で ASP.NET Session[] 変数を使用できますか

私は 2 つのプロジェクトを持っています。すべてのロジックとデータ アクセスを含む DLL プロジェクトと、フォームなどを実行する ASP.NET プロジェクトです。

私は少し混乱しています。System.Web 名前空間の参照を DLL プロジェクトに追加すれば、ASP.NET ページのセッション状態情報を参照できると思いました。

各ページを使用してセッション情報を取得し、それを処理のために DLL に渡すことができますが、DLL クラスから直接処理できるようにしたいと考えています。

これは可能ですか?

System.Web 名前空間をいじりましたが、Session 変数への参照を取得できるようです。

皆さんありがとう。

ジョン

0 投票する
7 に答える
48289 参照

asp.net - "HttpContext.Current.Session" 対 Global.asax "this.Session"

最近、職場で ASP.NET プロジェクトのコードに取り組んでいます。Sessionユーザー アクティビティ (ページ ヒット数など) に関する基本的なメトリックを取得するための追跡ユーティリティが必要でしSession_EndGlobal.asax

私はハッキングを始めました。最初のコードは問題なく機能し、ページの読み込みごとに DB を更新しました。Session_Endただし、各リクエストでこの DB ヒットを削除し、すべてのデータを保存することに依存したかったのです。

Tracker基本的にセッション変数をラップするプロパティを含め、すべてのトラッキング コードがクラスにカプセル化されます。

問題は、メソッドで 実行Tracker.Log()したときに、トラッカー コードの が で失敗していたことです。常に現在のリクエストに関連しているため、これは理にかなっています。もちろん、 にはリクエストはありません。Session_EndHttpContext.Current.SessionNullReferenceExceptionHttpContextSession_End

実際には正常に動作しているように見えるa を返すプロパティがあることを知ってGlobal.asaxいます(トラッカーに挿入することになりました)。SessionHttpSessionState

しかし、私は興味があります. の外部から使用されるオブジェクトへの同じ参照をどのように取得できますHttpSessionStateか?Global.asaxGlobal.asax

前もってありがとう、私は入力に感謝します。:)

0 投票する
7 に答える
2883 参照

asp.net - セッション値のキー名の列挙を作成するのは良い考えですか?

する代わりに

やっている

のほうがいい?

0 投票する
5 に答える
9363 参照

asp.net - ASP.NET セッション状態サーバーのスケールアップ

シナリオ:

Web サイトは、それぞれでIISを使用する 3 つのサーバーでホストされています。

3 台のサーバーはすべて、Windows Server 2003 に付属のネットワーク負荷分散ソフトウェアを使用してクラスター化されています。

3 つのサイトはすべて、「状態サーバー」として指定された別のサーバーにセッション状態を格納するように構成されています。

「状態サーバー」のスケールアップを依頼されました。複数の状態サーバーを持ち、それらの間で状態を同期する方法はありますか? そのため、状態サーバーの 1 つがダウンした場合、他のサーバーが状態情報を提供できるようになりますか?

0 投票する
3 に答える
531 参照

asp.net - セッション状態のオーバーヘッドの削除と追加

以下は、セッション状態でオブジェクトを通常どのように処理するかです。セッション名として const 文字列があり、オブジェクトの get と set を持つプロパティがあります。

私が疑問に思っていたのは、「Session.Remove()」呼び出しが (物事をきれいに整頓するために) 必要であったかどうか、およびこの削除を行うためにかなりのオーバーヘッドがあったかどうかでした。

基本的にはSession.Removeがあり、気分が良くなり(OCDがわかります)、セッションがきれいになったように感じますが、必要ないかどうか知りたいです。

以下の回答に従って編集して、プロパティを次のように変更しました。

ありがとう!