問題タブ [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.

0 投票する
1 に答える
3820 参照

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 文字の接尾辞があります。たとえば2476b0332b7731d2データベースに保存されているすべてのセッションで一貫性があります。
したがって、SessionID は次のようになりますy4hfairc2xbwlupkdsqpv0nz2476b033y4hfairc2xbwlupkdsqpv0nz2b7731d2

そのため、明らかにセッションは共有されず、各サーバーは独自のセッション状態を維持します。

以前にこれに遭遇した可能性のある同様の構成を使用している人はいますか?

ありがとう

アップデート

ここで判明: SQL Server に保存された SessionId は、余分な文字が IIS AppID である asp.net ランタイムから生成されたものとは異なります。ここで、両方のサーバーが一致するように変更する方法を見つける必要があります。これまでのところ運がありません。
誰?

0 投票する
0 に答える
298 参照

asp.net - ASPState の TempInsertStateItemShort プロシージャの実行に 1 秒以上かかる

複数のサーバー内で負荷分散して実行される .NET Web サイトで作業しているため、SQL Server でセッションを行う必要があります。

過去 2 週間で、プロシージャTempInsertStateItemShortの実行に 1 秒以上かかっていることに気付きました。

誰もそれを経験したことがありますか?ASPState データベースのパフォーマンスを向上させるにはどうすればよいですか?

ここにいくつかの追加情報があります - 現在、サイトには約 10,000 人のユーザーがいます - 約 1,000 人の同時ユーザー - ASPState データベースのサイズは 3 MB のみです (セッションはあまり使用せず、いくつかの目的にのみ使用します)

前もって感謝します!!!!

0 投票する
1 に答える
333 参照

session - ASPState を使用した従来の ASP

ASP.NET は、セッションをデータベースに自動的に保存できます。セッションをクラシック ASP のデータベースに保存する方法はありますか?

データベースを使用して、ASP.NET と Classic ASP の間でセッションを共有する必要があります。Classic ASP がこの機能をサポートしていない場合。これをシミュレートする他の方法はありますか?

0 投票する
1 に答える
152 参照

asp.net - ASPState データベース

どこにも答えが見つからないという質問があります。9 つのアプリケーションがあり、そのうち 8 つが .NET 2.0 を実行し、8 年間実行されています。これらはすべて、ASP 状態データベースを使用します。最近、.NET 4.0 を実行する新しいサイトを作成しました。

(現時点では、3.5 以上のバージョンと互換性のない Bluedragon を使用しているため、以前のサイトはどれもアップグレードできないと言わなければなりません)。

2007 年に作成された状態データベースを実行しているデータベース サーバーも 1 台あります。

.NET 4.0 Web アプリケーションを単に既存の StateDB に向けることはできますか? 最も初歩的な調査を行うと、スキーマは実際に同じように見えますか?

0 投票する
1 に答える
397 参照

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 を共有できるかどうかを知りたいです。何か問題はありますか?

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

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 を使用してセッション状態を達成できた人、または実行する必要がある手順を説明できるリソースを教えてくれる人はいますか?

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

sql-server - mssql で aspstate ログをクリアすることは可能ですか?

私の ASPState.LDF ファイルは現在 17 GB を超えており、そのデータの一部はかなり古いものです。古いデータをすべて削除する方法はありますか?

まだ SQL データベース管理を学んでおり、ASPState を使用するのは初めてです。

0 投票する
0 に答える
2052 参照

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 を増やすことを提案しています。しかし、サーバーの負荷が高くないため、私にとっては良い解決策ではないようです。

イベント ビューアーに移動すると、次の警告が表示されます。

これをさらに調査するにはどうすればよいですか?