問題タブ [aspstate]
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.
asp.net - ASP.NET - セッションが SQL Server に格納されている場合、サーバー間で異なる SessionId
SQL Server データベースを使用して、2 つの運用 Web サーバー間で共有セッション状態を管理しています。
最近、サーバーからサーバーにジャンプするときにセッションが実際には共有されていないことに気付きました (以前はそうではなかったと確信しています)。
両方のサーバーが同じドメインで同じ Web サイトを実行しており、ハードウェア ロード バランサーを使用してバランスが取れています。どちらも IIS7 で動作します。また、両方のサーバーで ASP.NET State Service が実行されています。
HTTP ヘッダーを検査し、SQL プロファイラー キャプチャとの相互参照を行ったところ、問題と思われるものが見つかりました。
Cookie の SessionId 値は 24 文字の文字列です。y4hfairc2xbwlupkdsqpv0nz
ASPState
データベースによって受信され、そこに保存される SessionIDはより長く、サーバー固有の 8 文字の接尾辞があります。たとえば2476b033
、2b7731d2
データベースに保存されているすべてのセッションで一貫性があります。
したがって、SessionID は次のようになりますy4hfairc2xbwlupkdsqpv0nz2476b033
。y4hfairc2xbwlupkdsqpv0nz2b7731d2
そのため、明らかにセッションは共有されず、各サーバーは独自のセッション状態を維持します。
以前にこれに遭遇した可能性のある同様の構成を使用している人はいますか?
ありがとう
アップデート
ここで判明: SQL Server に保存された SessionId は、余分な文字が IIS AppID である asp.net ランタイムから生成されたものとは異なります。ここで、両方のサーバーが一致するように変更する方法を見つける必要があります。これまでのところ運がありません。
誰?
asp.net - ASPState の TempInsertStateItemShort プロシージャの実行に 1 秒以上かかる
複数のサーバー内で負荷分散して実行される .NET Web サイトで作業しているため、SQL Server でセッションを行う必要があります。
過去 2 週間で、プロシージャTempInsertStateItemShortの実行に 1 秒以上かかっていることに気付きました。
誰もそれを経験したことがありますか?ASPState データベースのパフォーマンスを向上させるにはどうすればよいですか?
ここにいくつかの追加情報があります - 現在、サイトには約 10,000 人のユーザーがいます - 約 1,000 人の同時ユーザー - ASPState データベースのサイズは 3 MB のみです (セッションはあまり使用せず、いくつかの目的にのみ使用します)
前もって感謝します!!!!
session - ASPState を使用した従来の ASP
ASP.NET は、セッションをデータベースに自動的に保存できます。セッションをクラシック ASP のデータベースに保存する方法はありますか?
データベースを使用して、ASP.NET と Classic ASP の間でセッションを共有する必要があります。Classic ASP がこの機能をサポートしていない場合。これをシミュレートする他の方法はありますか?
asp.net - ASPState データベース
どこにも答えが見つからないという質問があります。9 つのアプリケーションがあり、そのうち 8 つが .NET 2.0 を実行し、8 年間実行されています。これらはすべて、ASP 状態データベースを使用します。最近、.NET 4.0 を実行する新しいサイトを作成しました。
(現時点では、3.5 以上のバージョンと互換性のない Bluedragon を使用しているため、以前のサイトはどれもアップグレードできないと言わなければなりません)。
2007 年に作成された状態データベースを実行しているデータベース サーバーも 1 台あります。
.NET 4.0 Web アプリケーションを単に既存の StateDB に向けることはできますか? 最も初歩的な調査を行うと、スキーマは実際に同じように見えますか?
iis - 2 つの異なるサーバー (環境) でホストされている同じアプリケーションが単一の ASPState データベースを共有するにはどうすればよいですか?
2 つの異なる Web サーバー (ステージング サーバーとデモ サーバー) でホストされている asp.net mvc 2 アプリケーションがあります。両方のサーバーで、アプリケーションは既定の Web サイトとしてホストされています。現在、両方の Web サーバーで、同じデータベース サーバーでホストされている 2 つの異なるカスタム データベース (StaginDB、DemoDB) を使用しています。
1.WebServer 1 は StagingDB と ASPStateDB を使用しています。 2.WebServer 2 は DemoDB と ASPStateDB を使用しています。
詳細については、スクリーンショットをご覧ください。
上の図に基づいて、両方の Web サーバー (WebServer 1、WebServer 2) で同じ ASPStateDB を共有できるかどうかを知りたいです。何か問題はありますか?
sql - AWS RDS で ASP セッション状態 DB を使用する
これは、 AWS フォーラムで以前に議論されたトピックであることを知っています。
Amazon RDS で SQL Server モードで sessionState をセットアップする方法
上記のスレッドといくつかのスタック オーバーフローの記事で述べたように、AWS RDS を使用して SQL セッションを取得する方法があるようです。上記のスタックオーバーフローをガイダンスとして使用して、ASPState データベースをセットアップしてみました。上記のstackoverflowの記事で「ジョブのない」InstallSqlState.sqlのpastebinスクリプトを使用しても、「tempdb」と「master」を使用しようとするため、問題が発生しました。これらのデータベースへのアクセス権がありません。アクセス権を自分に付与することもできません。
ただし、EC2 サーバー上のセッション テーブルを使用する作業サイトがありました。上記のスタック オーバーフローの記事に従って、SQL インポート/エクスポート ツールを使用しました。
データベースは正常にコピーされたようで、テーブルとストアド プロシージャはすべて存在し、正しいようです。
私のweb.configには次のものがあります:
ただし、サイトを実行すると、次のエラーが表示されます。
AWS RDS で SQL を使用してセッション状態を達成できた人、または実行する必要がある手順を説明できるリソースを教えてくれる人はいますか?
sql-server - mssql で aspstate ログをクリアすることは可能ですか?
私の ASPState.LDF ファイルは現在 17 GB を超えており、そのデータの一部はかなり古いものです。古いデータをすべて削除する方法はありますか?
まだ SQL データベース管理を学んでおり、ASPState を使用するのは初めてです。
asp.net - セッション状態サーバーにセッション状態要求を行うことができず、サーバーは実行中です
次のエラーがランダムに発生します。動作することもありますが、失敗することもあります。
セッション状態サーバーにセッション状態要求を行うことができません。ASP.NET State サービスが開始されていること、およびクライアントとサーバーのポートが同じであることを確認してください。サーバーがリモート マシン上にある場合は、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\aspnet_state\Parameters\AllowRemoteConnection の値を確認して、サーバーがリモート リクエストを受け入れることを確認してください。サーバーがローカル マシン上にあり、前述のレジストリ値が存在しないか 0 に設定されている場合、状態サーバー接続文字列はサーバー名として「localhost」または「127.0.0.1」を使用する必要があります。
Web.config の私の sessionState 構成は次のとおりです。
ASP.NET 状態サーバーが稼働中であることを再確認しました。また、ASP.NET ステート サーバーがポート 42424 で実行されていることも確認しました。実際、動作することもあります。私の IIS アプリケーション プールは、.NET 4 統合パイプラインです。
Microsoft のこの記事も確認しました。これは、stateNetworkTimeout を増やすことを提案しています。しかし、サーバーの負荷が高くないため、私にとっては良い解決策ではないようです。
イベント ビューアーに移動すると、次の警告が表示されます。
これをさらに調査するにはどうすればよいですか?