2010-03-04 2 views
0

크리스탈 리포트에 심각한 문제가 있습니다.크리스탈 리포트 .net visual studio 2008 번들 에디션

내 개발 환경에서 실행하거나 내 로컬 컴퓨터에서 디버깅하면 정상적으로 작동합니다.

하지만 응용 프로그램이 윈도우 서버 2003에 게시 할 때 내가이 메시지

누구 없애려고 운이 없었을

메시지 두려워한 "요청한 보고서는 추가 정보를 요구"했다 내가 뭘 시도 할 수 있는지 알아?

여기에 더 많은 정보가 있습니다. 자리 표시자를 aspx 페이지에서 사용하고 codebehind에서 사용자/암호와 데이터베이스를 설정합니다. 데이터 집합과 함께 작동하지 못하고 cr 디자이너에서 ODBC 연결을 할당해야합니다. 그런 다음 코드 뒤에 필요에 따라 위의 세부 사항을 변경하십시오. 같은 보고서는 3 개 개의 다른 데이터베이스의 데이터 (라이브 개발 및 교육)

protected override void Page_Load(object sender, EventArgs e) 
{ 
    base.Page_Load(sender, e); 

    CrystalReportSource1.ReportDocument.Load(Server.MapPath(@"~/Reports/Report5asp.rpt")); 
    CrystalReportViewer1.ReportSource = ConfigureCrystalReports(CrystalReportSource1.ReportDocument,CrystalReportViewer1); 

    // parameters 
    CrystalReportViewer1.ParameterFieldInfo.Clear(); 
    AddParameter("DIid", _app.Data["DIid"], CrystalReportViewer1.ParameterFieldInfo); 
    AddParameter("EEid", _app.Data["EEid"], CrystalReportViewer1.ParameterFieldInfo); 
    AddParameter("CTid", _app.Data["CTid"], CrystalReportViewer1.ParameterFieldInfo); 

} 


public ReportDocument ConfigureCrystalReports(ReportDocument report, CrystalReportViewer viewer) 
{ 
    String _connectionString = _app.ConnectionString(); 
    String dsn = _app.DSN(); 
    SqlConnectionStringBuilder SConn = new SqlConnectionStringBuilder(_connectionString); 


     TableLogOnInfos crtableLogoninfos = new TableLogOnInfos(); 
     TableLogOnInfo crtableLogoninfo = new TableLogOnInfo(); 
     ConnectionInfo crConnectionInfo = new ConnectionInfo(); 
     crConnectionInfo.ServerName = dsn;// SConn.DataSource; 
     crConnectionInfo.DatabaseName = SConn.InitialCatalog; 
     crConnectionInfo.UserID = SConn.UserID; 
     crConnectionInfo.Password = SConn.Password; 
     crConnectionInfo.Type = ConnectionInfoType.SQL; 
     crConnectionInfo.IntegratedSecurity = false; 

     foreach (CrystalDecisions.CrystalReports.Engine.Table CrTable in report.Database.Tables) 
     { 
      crtableLogoninfo = CrTable.LogOnInfo; 
      crtableLogoninfo.ConnectionInfo = crConnectionInfo; 
      CrTable.ApplyLogOnInfo(crtableLogoninfo); 
     } 

     return report; 

    } 

를 얻을 수 있기 때문에 winserver 2003 I에 배포 할 때이 개발에 사용되는 내 XP 시스템에서 잘 작동 언급 한 바와 같이

이 이루어집니다 나는이 문제에 이번 주말에 일할 수 있도록 오류

에게 내 집 컴퓨터에 개발을 이동 흥미있는 약간의 추가 정보

를 얻을.

그래서 지금 동일한 컴퓨터에서 디버깅 및 테스트를하고 있습니다.

VS2008에서

내가 편집하고 내가 디버거 내가 아무런 문제

와 브라우저에서 보고서를 볼 수 있습니다을 발사하면 아무런 문제 와 보고서를 미리 볼 수 있습니다하지만 같은에서 다른 폴더로 웹 사이트를 게시하는 경우 컴퓨터를 시작하고 IIS를 시작하고 앞서 언급 한 오류가 발생한 보고서를 찾아보십시오. 다른 모든 것은 예상대로 작동합니다.

IIS는 VS2008과 다른 권한으로 실행됩니다. IIS는 이와 관련하여 여러 가지 권한을 사용하지만 다른 권한을 많이 사용하기 때문에 실행할 수 없습니다.

답변

0

내가 찾은 해결책은 ODBC를 전혀 사용하지 않는 것이 었습니다. 대신 데이터 세트의 보고서를 채 웁니다. 그것이 얼마나 쉬운 지 알았 으면 처음부터 그것을했을 것입니다.

-1

크리스탈 리포트 뷰어가 코드 숨김이 아닌 aspx 페이지에 임베드되어 있습니까? 그렇다면 코드를 코드 뒤에 옮기십시오.

또한 데이터 세트를 데이터 소스로 바인딩하는 경우 대신 데이터 세트 내부의 데이터 테이블을 바인딩하십시오.

+0

일부 소스 코드를 포함 시켰습니다. 잘하면 그 해결책을 이끌 것입니다. 나는 결코 전에 CR을 사용하지 않았고 아마 다시는 없을 것이다. – DeveloperChris

+0

몇 가지 적절한 정보를 추가했다. 가장 중요한 것은 개발 컴퓨터에서 IIS를 사용하여 볼 때 실패합니다. 하지만 VS2008에서 작동 – DeveloperChris

+0

안녕하세요, 당신은 또한 배포 위치에 rpt 파일 (또는 전체 "보고서"폴더)를 복사 했습니까? rpt 파일은 런타임 중에 보고서를 실행하는 데 필요합니다. –