2010-12-30 3 views
0

내 목표는 aspx 또는 일반 처리기로 웹 페이지에 표시 할 PDF를 생성하는 것입니다. Silverlight 페이지에서 연결되지만이 문제와 관련이 없습니다.PDF 생성을위한 LocalReport (WebForms) 및 부분 신뢰

문제는 LocalReport (Microsoft.Reporting.WebForms, Microsoft.ReportViewer.WebForms.dll)는 완전한 신뢰가 필요하며 우리의 호스팅 서버 완전 신뢰를 허용하지 않습니다. ReportViewer에는 부분 신뢰로 실행할 수있는 원격 모드가 있지만 보고서 서버 URL에는 완전한 신뢰도 있어야하며 이는 아무 것도 해결하지 못합니다.

그래서 부분적으로 신뢰할 수있는 환경에서 WebForms (RDLC 보고서)에서 PDF를 생성하려면 어떻게합니까?

편집 : I 당신은 그들이 PDF 생성 라이브러리가 먼저 시스템에 설치되어 있고 그것을 사용하는 어떤 호스팅 회사에 확인해야 VS 2008

답변

0

는, 이것이 가장 좋은 해결 방법이 될 것입니다 :

내가 호스팅 서버에 연락, 그들은 Microsoft.ReportViewer에 액세스 할 수있는 별도의 서버를 (아마도 완전 신뢰를 실행). 그러나 추가 요금.

1

와 C# 3.5을 사용하고 있습니다.

내가 매체 신뢰에 내 자신을 시험하지 않았다 그러나 어떤 사람들이 오픈 소스 프로젝트와 중간 신뢰에 성공 있었

: http://sourceforge.net/projects/itextsharp/

건배, 스테판

업데이트

private LocalReport CreateReport() 
{ 
    LocalReport myReport = new LocalReport(); 
    myReport.ReportPath = "Report1.rdlc"; 

    // Insert parameters if needed 
    ReportParameter myParam = new ReportParameter("MyParamName", "myParamValueAsString"); 

    myReport.SetParameters(new ReportParameter[] { myParam }); 

    return myReport; 
} 
You can call the function to create the PDF: 



//Create new pdf file 
Byte[] mybytes = CreateReport().Render("PDF", Nothing, mimeType, encoding, extension, streamids, warnings); 

그리고 다운로드 용 Response로 mybytes를 작성할 수 있습니다 ..

+0

LocalReport는 전체 액세스가 필요하므로 서버가 보안 예외를 throw합니다. –

+0

iText가 부분 신뢰로 작동하도록 만드는 링크는 다음과 같습니다. http://instantdevelopment.blogspot.com/2009/10/itextsharp-pdf-rendering-in-medium.html –

+0

안녕하세요, 저는 이것이 Windows Server에서만 지원된다고 생각합니다. 2008 년 그러나 나는 대부분의 접대 회사가 지금 그것을 제안한다 짐작한다. – StefanE

0

서버에서 .NET 4를 사용하고 있습니까, 아니면 이전 버전입니까? ReportViewer 컨트롤은 항상 샌드 박스 응용 프로그램 도메인에서 실행됩니다 (MSDN의 도움말 페이지를 기반으로합니다 : http://msdn.microsoft.com/en-us/library/microsoft.reporting.webforms.localreport.executereportinsandboxappdomain.aspx). 이전 버전의 경우 (또는 LegacySecurityPolicy를 사용하는 경우) 보고서 뷰어에서 LocalReport 개체의 ExecuteReportInSandboxAppDomain 메서드를 호출하여 명시 적으로 지정해야합니다. 확실하지는 않지만이 으로 문제를 해결할 수 있습니다. 나는이 문제를 해결하기 위해 더 이상 답변을하지 않는

+0

저는 VS 2008에서 3.5를 사용하고 있습니다. 그래서 어디에서 언제 이걸 불러야합니까? 문제는 내 코드에서'LocalReport' (medium trust 포함)를 사용할 때 서버에서 호출하는 메서드를 입력해도 그 코드를 호출 할 기회가 결코 없다는 것입니다. –

+0

확인. 조금 더 조사해 보면 많은 사람들이이 문제를 안고있는 것처럼 보입니다. 관심이 없으면 어떤 호스트를 사용하고 있습니까? ReportViewer를 지원하는지 문의하기 위해 연락을 시도 했습니까? 일부 포럼 게시물은 ReportViewer DLL이 GAC에 설치되어 있으면 문제가 사라진다는 것을 나타냅니다. Bin 폴더에 ReportViewer DLL을 배포하지 않고 GAC 버전을 사용하려는 경우 (사용 가능한 경우)? 이 KB 기사에 도움이 될 수있는 (이) 문제점에 대한 핫픽스가 있습니다. http://support.microsoft.com/kb/961594이 포럼 스레드도 읽으십시오 : http://bit.ly/fpsLsj. –

+0

StefanE의 게시물을 읽은 후 호스팅 회사에 연락했으며 추가 요금으로 ReportViewer에 액세스 할 수있는 대체 서버 환경을 보유하고 있습니다. –

관련 문제