2013-03-21 2 views
1

두 웹 사이트는 다소 다르지만 둘 다 동일한 서버에서 실행되지만 다른 응용 프로그램 풀에서 실행됩니다. 응용 프로그램 풀은 모두 "네트워크 서비스"자격 증명과 함께 실행되도록 구성됩니다.개발 상태가 아닌 생산 상태를 봅니다.

하나의 웹 사이트에서 -이 복사본을 개발 복사본이라고 부르면 악명 높은 "뷰 상태 검증 실패 MAC"오류가 나타납니다. 이 문제는 페이지가 20 분 동안 유휴 상태가 된 후에 다시 게시가 발생할 때 발생합니다. web.config 또는 컴퓨터 구성 파일에 컴퓨터 키를 지정하지 않았기 때문에이 사실을 알았습니다. 수동으로 응용 프로그램 풀을 재활용하면 오류가 예상대로 재생됩니다. 그래서 내 질문은 문제를 막을 수있는 방법에 관한 것이 아니라 오히려 을 알고 싶습니다. 오류가 생산이 아닌 dev에서 발생하는 이유는 무엇입니까? 두 사이트의 설정 사이의 유일한 차이점은 인증 방법입니다.

IIS 구성의 "기본 설정"섹션에서 사이트의 개발자 버전은 서비스 계정을 사용하여 연결하고 프로덕션 버전은 "응용 프로그램 사용자"(통과 인증)를 사용하도록 연결됩니다. 인증 설정에서 두 페이지 모두 가장 및 Windows 인증으로 구성됩니다.

이것이 유일한 차이점입니다. IIS가 사이트 및 응용 프로그램 풀 수준에서 인증을 처리하는 방법에 대한 지식은 상당히 제한적입니다. 하나의 설정으로 인해 시스템 키가 새로 고쳐지지만 다른 하나는 그렇지 않은 특별한 이유가 있습니까?

+0

ViewState는 세션에 따라 다릅니다. 다시 게시하기 전에 세션을 무효화 (포기, 취소) 할 수있는 세션으로 어떤 속임수를 쓰고 있습니까? – JDPeckham

+0

아니요. 그리고 명시된 바와 같이 두 사이트의 코드에는 차이가 없습니다. 유일한 차이점은 인증 방법 – Trent

답변

0

.NET 3.5 SP1을 설치 한 후 ASP.NET 페이지에서 포스트 백을 수행 할 때 viewstate MAC 실패 예외의 유효성을 가져올 수 있습니다.

+0

입니다. 사이트가 .net 4.0에서 실행됩니다. – Trent