2017-04-13 10 views
0

오류 : "viewstate MAC의 유효성 검사에 실패했습니다.이 응용 프로그램이 웹 팜이나 클러스터에서 호스팅되는 경우 구성에 동일한 validationKey 및 유효성 검사 알고리즘. 자동 생성은 클러스터에서 사용할 수 없습니다. "Viewstate MAC에서 팜 또는 클러스터가 아닌 자동 생성 키를 사용하여 ASP.NET에서 오류가 발생했습니다.

  • 웹 팜 또는 클러스터에서 호스팅하지 않습니다.

  • 응용 프로그램에는 약 100 명의 사용자가 있습니다.

  • 이 메시지를받는 사용자는 1 명입니다.

  • 다른 브라우저 (Chrome, Firefox)를 사용할 때 사용자가 IE11에서이 오류 메시지를받는 경우에만 브라우저와 관련 있다고 생각됩니다.

  • IE7을 no-addons 모드로 실행하면 같은 오류가 발생합니다.

  • IIS의 컴퓨터 키 자동 생성 기본값은 변경되지 않았습니다.

제 목표는 빠른 수정이 아닌 무엇이 원인인지 파악하는 것입니다.

누구나 이런 상황이 발생하여 올바른 방향으로 나를 가리킬 수 있다면 좋을 것입니다.

답변

0

이 문제의 원인을 파악하지 못했지만 해결할 수있었습니다.

IE11 개발자 도구 (F12)의 에뮬레이션 탭에서 문서 모드를 Edge에서 IE10으로 전환 한 다음 다시 Edge로 전환했습니다. 농담이 아니라 문제가 해결되었습니다.

경우에 따라 전원을 껐다가 다시 켜면 문제가 해결되는 경우가 있습니다. 누군가 이것이 왜 뭔가를 정리할 수 있는지 알면 추가 의견을 환영합니다. 감사.

0

내가 알 수있는 것부터, ASP ViewState는 ViewState 데이터를 스크램블링하는 기본 암호화 키로 클라이언트/서버 MAC 주소를 사용합니다. 이는 초기에 웹 사이트를로드 한 클라이언트 - 서버 쌍이 모든 후속 연결에서 동일하도록 보장하기위한 것입니다. 이 작업이 실패하면 클러스터 또는 서버 팜 때문에 MAC 주소가 다르다는 가정이 있습니다. 웹 사이트를 호스팅하면 웹 페이지를로드 할 때와 똑같은 서버에 클라이언트가 다시 연결되지 않습니다. 키를 지정하면 두 MAC 주소를 키로 사용해야하는 필요성이 무시됩니다. 그러나 이것이 사실 일 수도 있고 아닐 수도 있습니다. 오류의 근본 원인을 가정 할 때 오해의 소지가있는 오류 제목입니다.

ASP에서 MasterPage를 사용하는 경우 IE의 기본값은 IE.master이고 그렇지 않은 경우 다른 모든 브라우저의 경우 Default.Master입니다. 이 폴더가 두 개의 다른 폴더에있는 경우 < machineKey>를 지정하는 두 개의 다른 web.config 파일을 다르게 (또는 전혀) 지정할 수 없습니다.

MSVS에는 다른 < machineKey> 설정을 가지고있는 Debug vs Release web.config 파일도 있습니다.

PLESK 호스팅에 문제가 있습니다. 로드 균형 조정, 중복 직렬 처리, 서버 클러스터 또는 팜 또는 프록시는 없지만이 호스팅 소프트웨어에는 web.config 파일을 지정할 때 고유 한 쿼크가 있습니다. 업로드 된 web.config 파일에 문제가있는 경우 웹 액세스 설정이 변경 될 때마다 덮어 씁니다. (이것은 나의 웹을 덮어 썼다.config 파일을 자동 생성 된 파일로 복사). 또한 기본 세션 시간 제한은 PLESK에 따라 다릅니다 (문제가있는 경우 5 분 20 분 ...).

전용 서버가 아닌 웹 호스트에서 둘 이상의 ASP 응용 프로그램이 < machineKey>를 지정할 때 교차 수분이 있는지 궁금합니다. 이것은 IIS/LASP/PLESK 유형 호스팅 소프트웨어가 실행중인 경우에 따라 다릅니다.

너무 많은 암호화 프로토콜 (SHA1 | MD5 | 3DES | AES | HMACSHA384 | HMACSHA512)이있는 상황에서 어느 프로토콜을 사용하고 있는지 궁금해하고 있습니다.

나는이 가능성을 제공하고 다른 사람들이 폭로하거나 확장 할 수 있도록 할 것입니다. 나는 ASP의 ViewState 암호화 연기와 거울이 내 존재의 단점 이었음을 인정해야한다.