4

最近、セッション情報を保存するために を使用InProcするように変更しました。StateServer

セッション情報を失うことなく、Web サイトの構成ファイルを更新できるかどうか疑問に思っていました。InProc を使用してリソース ファイル (言語ファイルなど)、Web 構成ファイル、global.asax、またはファイルを更新すると、App_Codeセッションがリセットされたように見え、次のようなエラーが発生することがわかりました。

'オブジェクト参照がオブジェクト インスタンスに設定されていません'

これは に行くと変わりStateServerますか? セッション データを失わずにこれらの種類のファイルを更新しても安全ですか? テストシステムでいくつかのテストを実行しましたが、問題なく動作しているように見えますが、100% 信頼できるわけではありません...

4

2 に答える 2

6

あなたの質問に対する簡単な答えはYESです

さらに言えば
...-StateServerを使用すると、セッションはシリアル化され、別のプロセス(aspnet_state.exe)のメモリに格納されます。
-StateServerは別のマシンで実行できます。
-セッションは永続的であり、アプリケーションの再起動中にセッションデータが失われることを心配する必要はありません
-基本タイプ(文字列、整数など)のデータを保存する場合、1つのテスト環境ではInProcよりも15%遅くなります。
-多数のオブジェクトを格納している場合、シリアル化/逆シリアル化のコストがパフォーマンスに影響を与える可能性があります。
-InProcモードでのセッション状態損失の問題を解決します。WebファームがASP.NETセッションを中央サーバーに保存できるようにします。ステートサーバーでの単一障害点。

詳細については、以下を参照してください
。-状態サーバーへのセッションinprocモードの手順

于 2013-01-03T12:42:17.057 に答える
1

はい、そうです。セッション データがアウト プロセスになったら、ワーカー プロセスを安全に再起動できます。サイトにログインし、セッションの更新を含むいくつかのアクションを実行し、対応する w3wp.exe プロセス (IIS 7+ であると想定) をタスク マネージャーから (または web.config に触れるだけで) 強制終了することでテストできます。

于 2013-01-03T12:37:01.360 に答える