2014-09-29 2 views
2

나는 웹 사이트/웹 응용 프로그램을 호스팅하는 asp.net 웹 사이트를 온라인으로 구입했습니다. 시간viewstate MAC의 유효성 검사가 실패했습니다. 응용 프로그램 풀 유휴 시간 초과로 인해 발생했습니다.

많은 I 오류에 직면하고있다 :

Validation of viewstate MAC failed. If this application is hosted by a Web Farm or cluster...... 

을 오랫동안 연구 한 후에 내가 오류로 인해 "응용 프로그램 풀 유휴 시간 초과"를 발생하는 것을 발견했다.

기본적으로 app-pool은 5 분마다 재활용합니다. 사용자가 사이트에서 작업 중일 때이 재생이 발생하여 서버에 다시 게시하면 서버는 더 이상 세션/viewstate를 인식하지 않고 게시 된 것을 거부합니다.

내 "응용 프로그램 풀 유휴 시간 초과"값은 약 5 분입니다. 너무 짧습니다.

나는 시간 초과 기간을 변경하기 위해 도메인 담당자에게 연락했지만 모든 사람들이 똑같이 말하면이를 거부하고 변경할 수 없습니다.

나는 다른 솔루션에 대한 인터넷 검색과 아래의 해결책을 발견했다 :

  1. 이 거짓 (안 좋은 w.r.t. 보안상의 이유로)에의 enableViewStateMac 속성을 설정.
  2. 유효성 검사 및 암호 해독 키 ""(작동하지 않음)를 제공하십시오.

가능한 한 빨리 해결책을 제공해주십시오.

또는 도메인 관리자 (예 : godaddy.com)를 변경해야합니까?

답변

0

나는 과거에이 문제를보고 해결했습니다. 이 문제는 주로 웹 팜 또는 웹 클러스터에서 응용 프로그램을 호스팅 할 때 발생합니다.

페이지가 렌더링되면보기 상태가 서버에서 암호화되어 클라이언트로 전송됩니다. 페이지가 다시 게시되면이 뷰 상태 데이터가 서버에서 해독되어 페이지의 상태를 가져옵니다. viewState 서버의 암호화 및 암호 해독의 경우 Maching.config 파일에 제공되지 않은 경우 서버에서 즉시 생성되는 일부 키를 사용합니다.

단일 서버 호스팅 환경에있는 경우 이러한 키가 재활용 될 수 있습니다. 그러나 웹 팜 또는 웹 클러스터에서 이러한 키가 임의로 생성되면 모든 서버마다 다르며 한 서버의 요청을 다른 키 집합이있는 다른 서버로 다시 게시 할 수 있습니다.

이 문제는 모든 서버의 Machine.Config 파일 또는 응용 프로그램의 web.config 파일에 MachineKey 항목을 추가하여 각 서버가보기 상태의 암호화 및 암호 해독에 동일한 키를 사용하도록합니다.

+0

예를 들어 알려주세요. – Vishal

관련 문제