問題タブ [sql-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.
asp.net - SQL Server セッション状態の永続化はどのように機能しますか?
私は ASP.NET セッション状態を使用するのが好きではありませんが、現時点ではアプリケーションで ASP.NET セッション状態を使用しています。セッション状態の永続化に SQL Server モードを使用しています。認可チェックの結果をセッション状態にキャッシュすることを検討していますが、この方法のパフォーマンスが心配です。SQL Server セッション状態の永続性は .NET でどのように機能しますか?
私が知る限り、すべてのセッション データは 1 つのデータベース行に格納され、データ自体は 1 つの列に格納されます。私が心配しているのは、アプリケーションが 1 つの要求で 12 の異なる承認チェックを行い、各結果が受信直後に保存される場合、それらのアイテムが保存されるときに 12 の異なるデータベース要求が行われ、私が行っているネットワーク要求の削減が無効になることです。達成しようとしています。
各セッション状態の変化は同期データベース要求を伴いますか?それとも、すべてのセッション状態の変更は、ASP.NET 要求のライフ サイクル中に一度に保持されますか?
asp.net - ASP.NET/SQLServerでのセッション状態の喪失
ロードバランサーによって管理される2つのWebサイトとして構成されたASP.NETMVCワークフローがあります。Webサイトはセッション状態プロバイダーとしてSQLServerを使用し、認証スイッチをオフにします(必須ではありません)。
現在、散発的にセッション状態が失われているように見えます。これは、リクエストが代替サーバーによって処理されているためだと思います。そのため、ロードバランサーの判断に応じて、基本的にユーザーはサーバーからサーバーにジャンプします。ワークフローの同じ段階で常に「セッション状態が失われる」とは限らないため、Webファームの構成+SQLサーバーのセッション状態に関連していると思います。
どちらのアプリケーションも同じマシンキーを使用して、SQLサーバーに格納されているセッション状態を暗号化および復号化します。
両方のサーバーの構成は次のとおりです。
これは両方のサーバーで同じであることを確認しましたが、不足しているものはありますか?
単一のサーバーを使用している場合、これは開発環境では発生しません。
私は金曜日のブルースに苦しんでいるのではないかと心配しています。来週は間違いなく答えがわかります。悲しいことに、待ちたくありません。
何か案は?
sql - SQLServerでセッションの長さを分単位で取得する方法
手順で次のクエリを使用すると、データベースへの接続をカウントできます
これは正常に機能していますが、すべての接続/セッションの長さを分単位で取得する方法はありますか?
asp.net-mvc-3 - ASP.NET_SessionId Cookie を非表示
セッション情報をデータベースに保存する ASP.Net MVC アプリを作成しましたが、ブラウザーの Cookie "ASP.NET_SessionId" にセッション ID が保存されていることがわかります。これはセキュリティ上のリスクですか? ID を使用してユーザーのセッションをハッキング/盗むことはできますか?
asp.net-mvc - 奇妙なパス値でレンダリングされるリンク
これはログで数回見たことがあり、ユーザーからも報告されていますが、問題の真相を突き止めることはできませんでした。
ときどき、奇妙なパス値を持つリンクを含むページが出力キャッシュからレンダリングされます(X(3)S(5l53uwuaffkddojv4iwb3snm))
。これはおそらく、ページの最初のレンダリングにこれらのリンクが含まれているために発生し、それらが一緒にキャッシュされるためです。
これは、そのページのすべての URL がこのように見えることを意味します。
http://www.example.com/(X(3)S(5l53uwuaffkddojv4iwb3snm))/foo/bar/index.htm
これは、この質問と MSDN の記事「ASP.NET Cookieless 機能のしくみを理解する」と同じように見えますが、公開サイトではセッションまたはセッション Cookie を使用していますが、サイトの 99% では実際にはセッションを使用していません。 . 残りの 1% はユーザー エクスペリエンスのためにセッション Cookie を使用しているため、これがサイトの残りの部分にどのように問題を引き起こすかわかりません。
上記の記事のこの部分は、問題を参照しているようです。
現在、セッション状態は次のようになっています。
この問題を解決する方法について何かアイデアはありますか? このような URL が表示されないようにする方法はありますか?
asp.net - 特定のページのセッション プロバイダーをオーバーライドできますか?
たとえば、1 つのページに InProc セッション プロバイダーを指定し、他のすべてのページにデータベース ベースのセッション プロバイダーを指定できますか?
asp.net - ASP.NET SQL Server セッション状態が非常に遅い
Web ファームが必要な ASP.NET アプリケーションに問題がありますが、アプリケーションにログインするだけで約 15 秒かかります
アプリケーションの非 Web ファーム バージョンを作成し、代わりに INPROC セッション状態を使用して、ログイン時間が即時になるという小さな実験を行いました。このテスト インスタンスでは、同じマシンで SQL Express を実行しています。
SQLサーバーのセッション状態が遅いことは知っていますが、これほど遅くする方法はありません。問題を追跡する方法に関する提案はありますか?
これは私のセッション状態です:
ユーザー名パスワードと統合セキュリティの両方を使用してみました。
asp.net - Web ホストの設定がおかしいため、別のセッション状態の提案が必要です
スポーツクラブのサイトを作っています。クラブはホスティングを別のウェブホストに移すことに興味がないので、私は現在のホストを使い続けています. 新しい Web アプリケーションをホストにデプロイしましたが、数時間のテストの後、ログインとセッション状態に関して何かがおかしいことが明らかになりました。
アイドル状態が 10 分以上続くと、突然、MVC 検証トークンの復号化が停止しました。IIS にアクセスしてマシン キーを静的な値に設定すると、この問題はなくなりましたが、ASP.NET のアイドル タイムアウト設定が 10 分に設定されていることが明らかになりました。これは、サイトでアクティビティがなければ、10 分ごとに InProc セッション データが破棄されることを意味します。ホストにサポート チケットを提出しましたが、ホストはアプリ プールの設定を変更することを望んでおらず、「これを増やすとパフォーマンスに影響を与える可能性があるため、現時点ではサーバーで設定を変更することはできません (sic)」と述べています。サーバー"。
クラブはやや小さく、クラブのメンバーはせいぜい 500 人で、サイトに頻繁にアクセスするメンバーはほとんどいないため、10 分間のタイムアウトが 1 日に複数回発生し、セッション タイムアウトが発生することはほぼ確実です。 60 分に設定されているため、特定の時間にサイトの唯一のユーザーが 10 分間アイドル状態である場合、サイトのセッションをクリアすることはお勧めできません。
最初に考えたのは、SQL セッション ストレージを使用することでした。使ったことはありませんが、存在は知っています。ただし、SQL ストレージが 350 MB に制限されているという注意点があります。これはおそらくサイトが現在必要としている量を超えていますが、将来的には限界に近づく可能性があると考えています。私はセッションに多くのデータを保存するとは思っていません.Paypalとショッピングカートとやり取りするときのいくつかのものだけです.
私たちには無制限のディスク容量があるので、私が考えたもう 1 つの代替案は、カスタムのディスクベースのセッション ストレージ ソリューションを作成することでした。これがSQLよりも良い考えではないかもしれない理由はありますか?
そして最後に、私は完全に壁から離れた「ああ、こんなことを考えているなんて信じられない」というアイデアを思いつきました。それは、すべてのページで定期的に (たとえば、8 分ごとに) AJAX 呼び出しを行うというものでした。サーバーを維持するためだけに、キャッシュされていない軽量の MVC アクションを ping します。これはおそらくうまくいくと思いますが、誰かが次のようなシナリオを除いて:
- ショッピングページに移動し、カートを作成します
- ペイパルに転送されます
- 他に誰もサイトにいないときに、なんらかの理由で 10 分以上 Paypal の画面で過ごす
- 彼らのカートが消えるのを見るために戻ってきます。
この場合、とにかくカートをデータベースに移動するだけです。
それで...考え、コメント、提案はありますか?ホストがこの設定を変更させてくれないことに本当にイライラしており、私の最初の本能は別のホストを見つけることですが、前にも言ったように、クラブはホストに奇妙な愛着を持っており、どこかに移動したくありません.
前もって感謝します!
iis-7 - SQLServer SessionState
SessionStateのInProcモードを使用していますが、アプリケーションプールのリサイクルのためにアプリが再起動し続けているため、現在ログインしているユーザーのセッションが失われています。データベースに保存するように変更したい。このようにwebconfigを編集しました
セッション状態または新しいデータベース用にいくつかのテーブルを作成する必要がありますか?私のホスティングは共有されているので、管理コンソールなどにアクセスできません。
asp.net - allowCustomSqlDatabase="true" の ASP.NET SessionState が指定されたデータベースを呼び出さない
マイクロソフトのドキュメントはこちら
http://msdn.microsoft.com/en-us/library/h6bb9cz9(v=vs.90).aspx
また、いくつかの SO 記事では、ASP.NET web.config ファイルの sessionState 宣言でallowCustomSqlDatabase="true"を指定すると、デフォルトの ASPState データベースを使用してオーバーライドし、独自のデータベース名を指定できることが示されています。
これらのプロパティを web.config ファイルで設定します。
デフォルトの Web サイト ページを表示しようとすると、ASPState データベースにアクセスできないことを示すエラー メッセージが表示されます。
SQL プロファイラーを使用して SQL トラフィックを監視したところ、失敗の原因は次の要求であることがわかりました。
アプリケーション プールをリサイクルし、キャッシュされたデータベース名の参照が存在する可能性があるものをフラッシュするために IIS を再起動しましたが、役に立ちません。私の理解では、ASP.NET SessionState は、指定したデータベース名DR_ASPStateを使用して、SessionState データベースへの接続に使用する SQL ステートメントを生成します。しかし、[ASPState]がフレームワークにハードコードされているようです。
誰かが私が間違ったことを見つけたり、これを解決する方法に関する有用なトラブルシューティング情報を提供したりできますか?