2013-05-17 3 views
4

표준 ASP.NET ReportViewer 컨트롤 (v11, SQL 2012, VS 2012)에 문제가 있습니다. 이것은 이전에 어느 시점에서 원격 SSRS 서버에 연결했지만 사이트 개발 중에 무언가가 망가졌고 그 원인을 찾아 내기 위해 고심하고 있습니다. 나는 간단한 양식을 작성하는 경우ReportViewer 컨트롤에서 빈 페이지를 반환합니다.

:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ReportTest.aspx.cs" Inherits="ReportTest" %> 

<%@ Register Assembly="Microsoft.ReportViewer.WebForms, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" Namespace="Microsoft.Reporting.WebForms" TagPrefix="rsweb" %> 

<!DOCTYPE html> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
     This is a test! 

     <rsweb:ReportViewer ID="ReportViewer1" runat="server" ProcessingMode="Remote"> 
      <ServerReport ReportPath="/Reports/MyTestReport" ReportServerUrl="http://sqlserver/reportserver" />   
     </rsweb:ReportViewer> 
    </div> 
    </form> 
</body> 
</html> 

..하고이를 실행 아무것도는 브라우저에 표시됩니다. 심지어는 This is a test! 텍스트가 아니며, 이는 서버 측에서 "무언가 충돌"이라고 표시합니다. 이 이론을 뒷받침하는 Fiddler를 사용하면 보고서 서버에 접속하려는 시도가 없다는 것을 알 수 있습니다.

Visual Studio에서 모든 예외 트래핑을 사용하도록 설정했지만 아무 것도 잡히지 않으며 출력에서 ​​볼 수있는 것이 아무것도 없습니다. ReportViewer 컨트롤은 디자인 모드에서 올바르게 표시되며 ReportViewer 재배포 가능 항목을 다시 설치했습니다.

+0

"http : // sqlserver/reports"의 SSRS 관리자에서 "MyTestReport"를 볼 때 데이터가 표시됩니까? –

+0

금이 간다, 내 대답은 아래 참조하십시오. 그러나 귀하의 질문에 대답 : 예, 그것은 않습니다 :) – KenD

답변

3

나는 두 가지 문제를 문제를 발견, 또는 오히려했습니다

  • 나는 페이지에 스크립트 관리자가 필요했습니다. 위 테스트 웹 페이지로 완전히 새로운 프로젝트를 생성하면 원본 프로젝트의 테스트 페이지 (실제로 원래 제작 페이지)가 누락 된 ScriptManager에 대해 불평하지 않지만 ScriptManager 요구 사항에 대한 오류가 발생합니다. 실수로 원래 ScriptManager를 삭제해야합니다. 이 문제를 해결하려면, 내가 추가하는 데 필요한 모든했다 : 두 번째

    <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager> 
    
  • - 이것은 생산 코드 자체에 있었다 - 나는 매개 변수 정의이 옵션을

    ShowParameterPrompts="True"

    있었다, 페이지 위와 같은 오류가 발생하여로드되지 않습니다. 그러나 해당 옵션을 제거하면 페이지를 정상적으로로드 할 수있었습니다.

2

나는 이런 식으로 생각합니다. Page_Load 대신 Page_Init에 코드를 추가 할 때 수정했습니다.

에 한번이 줄을 추가 :

rptv.ServerReport.Refresh(); 
1

this.ReportViewer1.AsyncRendering = 거짓;

내 페이지가 제대로 작동했습니다.

0

null 값을 허용 할 수있는 매개 변수를 보내는 경우 ReportViever accept null에서이 값을 정의해야합니다. 그는 오류를주지 않고 빈 보고서를 보여 주도록 정의하지 않습니다.

관련 문제