수십 명의 고객에게 거의 1 년 동안 배포 된 상당히 안정적인 서버 응용 프로그램 버전이 있습니다.보안 투명 방법으로 시도 X의 보안 중요 방법에 액세스하지 못함
한 새로운 고객 최근 설치 응용 프로그램 및 다음과 같은 오류를 얻고있다 :
System.MethodAccessException: Attempt by security transparent method [SomeMethod] to access security critical method [SomeOtherMethod] failed.
것으로 someMethod 및 SomeOtherMethod 모두 .NET 4에 내장되어 내가 쓴 어셈블리의 방법이 있으며, 내부에 그것을 실행하는 Windows 서비스. 차이가 나는 경우 SomeOtherMethod는 .NET 2.0에 대해 작성된 타사 어셈블리 (EntLib 4.1)의 형식을 참조합니다. EntLib 4.1 코드를 보면 SecurityTransparent와 APTC 특성을 모두 사용하고 있지만 다른 클라이언트에서는 문제가 발생하지 않은 것으로 나타났습니다.
이 어셈블리는 .NET 2.0 CLR에서 업그레이드되었지만 오래 전부터 사용되었습니다. 이 정확한 코드는 다른 고객에게 잘 실행되고 있으며 APTC 속성을 명시 적으로 사용하고 있지 않으며 SecurityCritical 속성을 어디에서나 사용하고 있습니다.
이로 인해 구성 문제이거나 .NET Framework 패치 문제 일 가능성이 있습니다. 이 변경 사항을 초래할 수있는 .NET 용 패치가 출시 되었습니까? 기본적으로 꺼져 있지만 고객이 사용하도록 설정할 수있는 이러한 유형의 검사를 시행하는 구성 설정이 있습니까?
마지막으로 한 점. 내 서비스는 SSRS RDLC를 사용하여 PDF를 생성합니다. 때문에 .NET 4의 일부 변경에, 나는 다음과 같은 설정을 통해 기존 보안 정책을 사용하도록 서비스를 강제해야한다 : 자세한 내용은
<runtime>
<NetFx40_LegacySecurityPolicy enabled="true" />
</runtime>
나는이 작업을 수행해야하는 이유에,이 유래 게시물을 참조 : Very High Memory Usage in .NET 4.0
중요한 것은 다른 모든 고객에게도 마찬가지입니다. 이 고객 만이 문제를 겪고 있습니다.
이것은 의미가 있습니다. 나는 오늘 이것을 확인하고있다. 필자의 전나무는 실제로 Windows에서 전자 메일이나 IE를 통해 안전하지 않은 것으로 다운로드 된 파일에 플래그를 지정하는 기능으로 인해 어셈블리가 차단되고 있다고 생각했습니다. 나는이 물기를 전에 가지고 있었다. – RMD
귀하의 답변은 매우 도움이되었습니다. 실제로 물건들을 껌으로 막아 버리는 것이 차단 된 것으로 밝혀졌습니다. 파일 차단을 제거하면 (등록 정보 -> 차단 해제) 문제가 해결되었습니다. – RMD
@RMD 감사합니다. 젠장, 윈도우. – JefClaes