4

Windows 2005 +IIS6を実行している物理サーバーからWindows2008+ IIS7を実行している仮想サーバーに移行する、長寿命のASP.NET3.5アプリケーションがあります。新しいマシンは、古いマシン(IP、DNSなど)のIDを想定します。

私たちのクライアントは私たちのサイトを何時間も、時には何日も維持します。私が恐れているのは、この切り替えを行うと、MachineKeyが変更されるため、突然すべてのビューステートが検証に失敗することです。

この種の混乱は避けられますか?新しいサーバーのmachineKeyを現在使用しているものと同じになるように「設定」できますか?自動生成されていると思います-それが何であるかを知ることができますか?

それとも、これはそれだけの価値がありますか?これは、ユーザーがWebサイトにそれほど長くアクセスできると期待してはいけない、うんざりするような状況ですか?

4

3 に答える 3

2

machineKeyを明示的に設定できます。実際、これは、Webファームでさまざまなセッション状態モデルを使用している場合に非常に一般的に行われます。 これを行う方法に関するリンクは次のとおりです(記事の下部近く)。

残念ながら、現在のmachineKeyをまだ手動で生成していない場合は、アプリケーションドメインが再起動するたびにランダムに生成されます(つまり、サーバーが停止した場合、現在検証の問題に対して脆弱です)。

ただし、次のレジストリを調べることで、現在使用されているmachineKeyを見つけることができます。

HKU \ SID \ Software \ Microsoft \ ASP.NET \ 2.0.50727.0

(IIS6を使用している場合)。注意すれば、同じキーで新しいボックスをセットアップし、移行して、何も問題がない場合があります。しかし、それらは有名な最後の言葉です;)

于 2009-08-20T17:50:37.383 に答える