2 つの .NET Web サイトを 1 つの Windows 2003 (IIS6) サーバーから別のサーバーに移行しています。サイトの 1 つは .NET 2.0 で、もう 1 つは .NET 3.5 です。グローバル web.config ファイル (C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\ ディレクトリ内) で次の設定を使用して、ASP.NET セッション状態の StateServer モードを使用しています。セッション状態は古いサーバーで正常に動作しています。
<sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424"/>
ただし、ここから .NET 2.0 と .NET 3.5 SP1 フレームワークをインストールした後、サーバーの再起動、セッション タイムアウト、またはアプリケーション プールの更新後に、初めて (毎回) 次のエラー メッセージが表示されます。
このバージョンの ASP.NET にはセッション状態サーバー バージョン 2.0 以降が必要なため、セッション状態サーバーを使用できません。 lockCookie、Byte[] buf、Int32 cb、Int32 networkTimeout、SessionNDMakeRequestResults& 結果) System.Web.SessionState.OutOfProcSessionStateStore.SetAndReleaseItemExclusive (HttpContext コンテキスト、文字列 ID、SessionStateStoreData アイテム、オブジェクト lockId、ブール型 newItem) で System.Web.SessionState.SessionStateModule System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() の System.Web.HttpApplication の .OnReleaseState(オブジェクト ソース、EventArgs eventArgs)。ExecuteStep(IExecutionStep ステップ、ブール値 & completedSynchronously) ]
同様の症状を持つ他の2つの投稿を見つけましたが、どちらも機能する解決策を提供しませんでした.
これまでのところ、私は試しました:
- aspnet_regiis -ua の後に aspnet_regiis -i -enable を使用する
- .NET 3.5 SP1 および .NET 2.0 のアンインストールと再インストール
- httpRuntime enableVersionHeader 属性を明示的に true に設定する
注:この MSDN 記事で説明されているように、各アプリケーションの web.config ファイルに MachineKey 属性も設定しました。これは、以前とまったく同じようにコピーされた古いサーバーで作業していたものです。
.NET 2.0 のみをインストールすると、問題が完全に解消されたことに気付きました。.NET 3.5 SP1 をインストールした後にのみ表示されました。残念ながら、アプリケーションの 1 つは、その機能の一部が .NET 3.5 に依存しているため、アンインストールしたままにしておくことはできません。
この問題を診断して修正する方法はありますか?