ASP.NET 2.0 응용 프로그램의 새 버전을 배포 한 후 보안 예외가 발생하기 시작했습니다. "System.Security.SecurityException : 형식의 권한 요청 'System.Web.AspNetHostingPermission, System, Version = 2.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089'실패했습니다. "ASP.NET의 보안 예외 및 IIS 7.5의 사용자 프로필로드 옵션
인터넷에서 신속하게 조사한 후에 IIS 7.5 응용 프로그램 풀에서 "사용자 프로필로드"를 True로 설정하여이 isse를 해결할 수있었습니다. 이 솔루션은 유래 여기에 여러 번 언급 :
- Strange ASP.NET error !
- System.Web.AspNetHostingPermission Exception on New Deployment
- Running a asp.net web application project on IIS7 throws exception
세부 사항 :
- 응용 프로그램 풀 : .NET 2.0; 매니지드 파이프 라인 모드 - 클래식; 신원 - 사용자 정의 도메인 계정 은 IIS 6.0 (W2K3)에서
- 가 : 구약과 고급 응용 프로그램 작업의 새로운 버전 IIS 7.5에서
- 이 (W2K8-R2) : 응용 프로그램의 이전 버전 잘 작동; 응용 프로그램의 새 버전 보안을 예외가 발생 -이
편집 : 마침내이 문제의 원인을 발견했습니다! 우리 관리자는 응용 프로그램의 새 버전을 준비 환경에서 프로덕션 환경으로 복사하는 다른 기술을 사용했습니다. 그는 웹 서버를 중개자로 사용했습니다. 압축 된 릴리스를 제작 환경에 구축하고 파일을 압축 해제 한 후 다른 컴퓨터에서 가져온 파일을 "차단됨"으로 표시했습니다. https://superuser.com/questions/38476/this-file-came-from-another-computer-how-can-i-unblock-all-the-files-in-a도 참조하십시오. 그런 다음 ASP.NET은 완전 신뢰 대신 부분 신뢰로 이러한 바이너리를 논리적으로 실행하며 이는 실제로 응용 프로그램에서 언급 된 보안 예외를 야기했습니다..
"사용자 프로필로드"를 True로 설정하면 보안 예외가 부작용으로 수정되었습니다. "사용자 프로파일로드"가 거짓으로 설정된 경우 응용 프로그램 (코드가 아닐 수도 있습니다.NET BCL 또는 외부 어셈블리) 응용 프로그램 풀의 ID가 허용되지 않는 "C : \ Windows \ System32 \ config \ systemprofile \ AppData \ Local \ Microsoft \ Windows \ Temporary Internet Files"디렉터리에 대한 기본 정보를 쿼리하려고 시도합니다.
완전 신뢰와- : 액세스 부분 신뢰와 예외
- 을 발생시키지 않습니다이 쿼리 작업 거부 : 접근이 쿼리 작업 거부는 보안 예외
"로드 사용자 프로필"만약 제기 True로 설정하면 응용 프로그램 풀이 시작될 때마다 사용자 디렉터리의 임시 프로필이 만들어집니다. 우리의 응용 프로그램은 응용 프로그램 풀의 ID가 허용되는이 프로필의 "Temporary Internet Files"디렉토리에 대한 정보를 쿼리하려고합니다. 따라서 부분적인 신뢰로도 예외가 발생하지 않습니다.
정말 멋진 문제 해결 세션입니다. :)
피터 조사 작업을 해주셔서 감사합니다. 동일한 문제가 있었으며 스트림 유틸리티 (superuser.com 질문에 나열되어 있음)는 웹 응용 프로그램의 디렉토리에있는 모든 파일의 차단을 해제 한 방법이었습니다. 이제 사용자 프로필로드 옵션을 해제 할 수 있습니다! –
완전히 우수합니다.이 문제에 직면하여 제대로 설명하지 못했습니다. –
아래 답변에 대한 자세한 설명이 있습니다. http://stackoverflow.com/questions/17149132/what-exactly-happens-when-i-set-loaduserprofile-of-iis-pool –