1

一時的に販売を無効にする必要がある (設計の悪い) ショッピング カート サイトで要件があります。悪い設計とは、多くの開発者がこれに取り組み、多くのポイントが繰り返されて複数のエントリ ポイントとエグジット ポイントが作成されたことを意味します。問題は、セッション変数バスケットが多くの場所から変更できることです。怠惰のために多くの場所でコードを変更したくないか、いくつかの場所を離れるとどうなりますか?

私が見つけた銀の弾丸は、セッション「バスケット」が初期化されたり、null に設定されたりしないようにすることです。これにより、エントリがプロセスであっても最大で完了しないため、エラーがスローされますが、問題はありません。

サイトが他の機能を失うため、セッション全体を無効にすることはできません。

私の質問は、 session["basket"] = null; だけでコードを起動できることです。セッションオブジェクトで何かが変更されたときはいつですか?

4

1 に答える 1

2

私は間違っているかもしれませんが、独自のセッション プロバイダーを作成しない限り、セッション状態が変化するたびに、希望する方法でイベントをバインドできるとは思いません。

ここで希望するデバッグ方法を理解できれば、システムをデバッグしている間、global.asax イベントを一時的に利用できるかもしれません。

たとえば、 session["basket"] = null; を配置できる場合があります。global.asax の Application_PreSendRequestContent イベントに行を追加します。

http://www.techrepublic.com/article/working-with-the-aspnet-globalasax-file/

私はこれを個人的に行ったことはありませんが、試してみる価値があるかもしれません。

于 2013-11-01T13:12:22.827 に答える