2009-08-20 4 views
4

우리는 오래 살았던 ASP.NET 3.5 응용 프로그램을 Windows 2005 + IIS 6을 실행하는 실제 서버에서 Windows 2008 + IIS7을 실행하는 가상 서버로 옮깁니다. 새 컴퓨터는 IP, DNS 등 이전의 ID를 가정합니다.ASP.NET 서버 마이그레이션

고객은 수 시간 또는 수 일간 사이트를 유지합니다. 내 두려움은 우리가이 스위치 오버를 할 때 갑자기 모든보기 상태가 유효하지 않게된다는 것입니다. 왜냐하면 MachineKey가 변경 될 것이기 때문입니다.

이러한 종류의 중단을 피할 수 있습니까? 새 서버의 machineKey를 현재 사용중인 것과 동일하게 설정할 수 있습니까? 나는 그것이 자동 생성 된 것 같아요 - 그것이 무엇인지 알 수 있습니까?

또는 가치가 있습니다. 사용자가 오랫동안 웹 사이트를 방문 할 것으로 예상해서는 안되는 상황입니다.

답변

4
<system.web> 
    <machineKey validationKey="Generate on your own" decryptionKey="Generate on your own" validation="3DES"/> 
</system.web> 

정확합니다. 이사하면 모든 승인 쿠키가 무효화됩니다. viewstate 암호화가 켜져 있지 않으면 viewstate가 정상적으로 작동합니다.

machinekey 속성을 추가하면 사이트가 호스팅되는 위치는 중요하지 않습니다. 해당 컴퓨터 키가 동일하면 암호화와 암호 해독이 정상적으로 이루어집니다. 또한 사이트가 부하가 분산 된 환경에서 호스팅되는 경우이 방법을 사용하거나 사용해야합니다.

msdn.microsoft.com/en-us/library/ms998288.aspx

2

일반적으로이 같은 마이그레이션 전체 중단 될 것입니다. 대부분의 사이트에서는이를 알리고 컷오버 중에 일시적인 중단 페이지를 만듭니다. 또한 컴퓨터가 사용 가능하지 않은 시간이있을 것이라고 생각합니다. 따라서 컴퓨터 키와 viewstate에 관계없이 요청이 실패합니다. 나는 당신이 완전히 중단 할 것을 권합니다. 또한 새 서버를 실제로 사용하기 전에 테스트 할 수 있습니다.

또는 새 시스템에 새 IP를 제공하고 새 트래픽에 천천히 새 트래픽을 적용 할 수 있으며 기존 연결은 이전 연결에 남아 있습니다. 이렇게하려면 일종의 장치 (라우터, 내용 스위치 등)가 필요합니다. 서버가 그런 장치 뒤에 있는지 확실하지 않습니다.

하지만 다시 질문 드리겠습니다. 예, 기기 키를 수동으로 설정할 수 있습니다. 이것은 machine.config에 있습니다. 이를 통해 기존 시스템에서이 부분을 가지고 복사

<machineKey 
validationKey="..."   
decryptionKey="..." 
... 
/> 

그것은 일반적으로 다음 위치에 있습니다 C를 : \ Microsoft.NET 프레임 워크 \ \ V2.0.50727 \ CONFIG \ machine.config에

\ WINDOWS를 다음은 same machine Key 사용에 관한 기사입니다.

+0

고마워요. 지금 당장 핵심을 세우는 것이 내가 걱정하는 문제를 간단하게 만들 수 있다고 생각합니다. 즉, 이전은 정상적으로 진행되지만 기존 서버에 대한 요청은 실패합니다. – n8wrl

2

machineKey를 명시 적으로 설정할 수 있습니다. 실제로는 웹 팜과 다른 세션 상태 모델을 사용하는 경우 매우 일반적으로 수행됩니다. Here's a link (기사 하단 근처) 방법에 대해 알아보십시오.

수동으로 현재 machineKey를 수동으로 생성하지 않은 경우 응용 프로그램 도메인이 다시 시작될 때마다 무작위로 생성됩니다. 즉, 서버가 딸꾹질 된 경우 유효성 검사 문제에 취약 할 수 있습니다.

그러나

HKU \ SID \ 소프트웨어 \ 마이크로 소프트 \ ASP.NET \ 2.0.50727에서 레지스트리를 검색하여 사용중인 현재의 machineKey을 발견 할 수 있습니다.0

(IIS6을 사용하는 경우). 조심하다면 동일한 키를 사용하여 새 상자를 설정하고 다시 마이그레이션하고 아무 것도 잘못 수행하지 않아도됩니다. 그러나 그것들은 유명한 마지막 단어입니다.)