2011-08-11 8 views
2

외부 어셈블리를 사용하는 동안 SSRS 보고서 미리보기 창에서이 메시지가 표시됩니다.SSRS 외부 어셈블리 : 표현 호스트 어셈블리를로드하지 못했습니다.

내가 처음에 외부 어셈블리를 호출 (처음 # 오류로 시작)이 문제

와 함께 하루 보냈어요

Failed to load expression host assembly. Details: That assembly does not allow partially trusted callers.

괜찮습니다. 외부 어셈블리가 웹 서비스를 호출 할 때마다 #Error가 발생합니다. 그래서 나는 these directions을 따라, 그리고 함께 서비스를 호출하기위한 권한을 추가하는 코드 추가 :

var urlRegEx = new Regex(@"http://mydevserver\.com/.*"); 
var p = new WebPermission(NetworkAccess.Connect,urlRegEx); 
p.Assert(); 

p.Assert는 보안 예외가 발생합니다. 그래서, 내가했던 마지막 단계로 위의 코드를 실행 어셈블리에 완전 신뢰를 추가하려고했다 : 그것을 완전 신뢰를 추가 출연

cespol -af myAssembly.dll //after strongly signing it 

. 그러나 지금 나는 위의 메시지를 얻고있다.

보고서가 "표현식 호스트 어셈블리"및/또는 정확히 어떤 어셈블리에 결함이 있는지 확실하지 않습니다. 또한 위 링크의 지침에 따라 내 보고서에서 참조하는 어셈블리 2 개에 대해 CodeGroups (URL)를 추가하고 Microsoft Framework 구성 도구를 사용하여 FullTrust를 추가했습니다.

고려해야 할 중요한 사항 중 하나는 처음에 참조 된 어셈블리에서 간단한 코드를 실행할 수 있다는 것입니다. (웹 서비스 만 호출하면 #Error가 발생합니다). 하지만 이제는 fulltrust를 추가 한 후에 더 이상 그 일을 할 수 없으며 계속해서 오류를 극복 할 수 있습니다.

SecurityException: Request for the permission of type SecurityPermission failed.

UPDATE

서명 :

는 나는 다음과 같은 오류가 (피마 자유 유틸리티를 사용하여) 참조 된 어셈블리에서 완전 신뢰를 제거하고 그 안에 p.Assert()를 호출 전화를 시도하는 경우 어셈블리가,이 게시물의 주요 오류의 원인이되는 것입니다이 오류를 해결하기 위해

답변

2

한 가지 방법 (식 호스트 어셈블리를로드 할 수 없습니다)

부분적으로 신뢰할 수있는 발신자를 허용하려면.

[assembly:AllowPartiallyTrustedCallers] 

이 여전히 큰 문제는 해결되지 않지만이 스레드의 오류는 사라집니다. 더 많은 조사가 필요합니다. 내 외부 어셈블리가 완전히 신뢰하므로 부분적으로 신뢰할 수있는 "호출자"가 확실하지 않습니다.

관련 문제