1

C#.net と mysql でウェブサイト (ショッピング カート) を作成しています。.net および sql サーバーでは、sql サーバーでセッションを管理できます。これは mysql を使用して同じ方法で可能ですか? はいの場合はどうすればよいですか? 別の質問-セッションをデータベースに保存することは、ショッピングカートの正しいアプローチですか、それともメモリに保存する必要がありますか? 前もって感謝します

4

1 に答える 1

1

.NET Frameworkには、基本的に3つの「組み込み」セッションストレージメソッドがあります。

  • InProcモード。セッション状態をWebサーバーのメモリに保存します。これがデフォルトです。

  • StateServerモード。ASP.NET状態サービスと呼ばれる別のプロセスにセッション状態を格納します。これにより、Webアプリケーションが再起動された場合でもセッション状態が保持され、Webファーム内の複数のWebサーバーでセッション状態を利用できるようになります。

  • SQLServerモードは、セッション状態をSQLServerデータベースに格納します。これにより、Webアプリケーションが再起動された場合でもセッション状態が保持され、Webファーム内の複数のWebサーバーでセッション状態を利用できるようになります。

ご覧のとおり、データベースへのシリアル化をサポートしているのはSQLServerだけです。ただし、4番目のオプションがあります-独自のカスタムセッションストレージプロバイダーを作成します。クラスを継承するクラスを作成することにより、カスタムセッション状態ストアプロバイダーを実装できますSessionStateStoreProviderBase。MSDNのこの記事では、その方法について説明しています。

ただし、StateServerモードを使用することをお勧めします。これにより、InProcを使用するリスクの多くが軽減されます(メモリが少なくなったり、アプリプールがリサイクルされたり、アプリケーションが再起動されたりすると、セッション状態が簡単に失われる可能性があります)。[Serializable()] すべてのクラスを属性でマークすることを忘れないでください。ユーザーがサイトを離れた後もショッピングカートの情報を保持したい場合にのみ、データベースを使用します。

于 2012-04-18T07:57:31.977 に答える