質問

私のクライアントに月 30 ホスティング パッケージから月 80 ホスティング パッケージにアップグレードすることを推奨する前に、誰かが私の仮定を検証してくれることを期待していました。

サイト: このサイトはカスタム ASP.NET e コマース サイトです。ショッピング カートは inproc セッションに保存されます。

問題 現在のような繁忙期には、ユーザーがショッピング カートや FormsAuthentication ログイン情報を失うことが頻繁に発生します。

解決 SQL Server セッション状態を使用するようにサイトを移行したいと考えていました。私の推測では、負荷のために InProc セッションが 20 分のタイムアウトよりも頻繁にリサイクルされるため、顧客がショッピング カートを紛失しているのではないかと考えています。セッションを SQL Server またはセッション ステート サーバーに移動すると、顧客はリサイクルせずにショッピング カート セッションを保存できるようになりますか。そうであれば、一度、セッション タイムアウトを 40 分または 60 分に増やしても問題は発生します。

役に立ちましたか?

解決

SQL セッション状態を使用するということは、セッションが IIS のリサイクル後も存続することを意味します (ただし、tempdb にセッション データベースを作成する既定のスクリプトを使用している場合は、SQL Server のリサイクルは存続しません)。

永続的なセッション状態データベースを作成するスクリプトが Microsoft Web サイトから入手できます。代わりにそれを使用することをお勧めします (「 ここ).

それで、基本的にあなたの質問に答えます。はい、SQL セッション状態が役に立ちます。理論をテストするために、out-of-proc 状態サーバーの使用も検討することをお勧めします。

また、同僚が私に思い出させてくれたように、移行する前に、セッションに保存するものはすべてシリアル化可能としてマークされていることを確認してください。そうしないと、問題が発生します。

他のヒント

箱に RAM を追加してもらえますか?これは役立つ可能性があり、セッションを SQL Server に移動するよりも安価で簡単になる可能性があります。もちろん、それは一時しのぎにすぎませんが、数年間にわたって月あたり 50 ドル節約できるのであれば、おそらく価値があるでしょう。

また、コードをチェックして、他のデータが必要以上に長くセッション内に残っていないかどうかを確認することもできます。

その仮定は私には合理的に思えます。また、AppPool の設定を確認して、そのリサイクルの理由を理解してみるのもよいでしょう。おそらく、(可能であれば)それらを変更するだけで済みます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top