ASP.NET 使用時の注意点

セッション情報の格納方法について

ASP.NET のセッション情報は既定ではメモリに格納しているが (InProc モード)、これだと、ワーカープロセスが複数になった場合に各ワーカープロセス単位でセッション情報を格納して使用することになり、セッションが維持できなくなる。

Web.config で以下の設定を行うことでステートサービスを利用するようになり、ワーカープロセスの数に依らず、同じ場所にセッション情報を格納できるようになる。

<sessionState mode="StateServer"

ステートサービスにセッション情報を格納するには、格納対象のクラスオブジェクトがシリアライズ可能である必要がある。 そのためには対象クラスにシリアライズ可能の属性を設定する必要があるが、この状態であれば、IIS でワーカープロセスを増やす必要が出てきた場合もセッションの問題は発生しないので、開発時からステートサービスを使用するように変更しておくことを強く推奨。

参考 URL