0

我有一个报告,正常运行时它返回正确的数据,但是当我通过报告执行服务运行时,报告不包含任何数据。我们确实传递了一个包含我们过滤的 ID 的参数,使用报告上的标签我们可以验证它是否正在发送。

如果查看 ExecutionLogStorage 表,我可以看到我的报告以 rsSuccess 的状态运行,但 RowCount 为 0。事件日志或报告服务器日志中没有错误。

以下是我们用于将报告报告为 PDF 的方法:

    public byte[] Render( ReportRequest rptRequest )
    {
        ReportExecutionService rs = new ReportExecutionService();

        rs.Credentials = CredentialCache.DefaultCredentials;
        rs.Url = rptRequest.ReportExecutionServerEndPoint;

        string reportPath = string.Format(
            "/{0}/{1}",
            rptRequest.ReportDataBaseName,
            rptRequest.ReportName );

        string format = "PDF";

        string historyID = null;
        string devInfo =
            @"<DeviceInfo><Toolbar>False</Toolbar></DeviceInfo>";

        string encoding;
        string mimeType;
        string extension;
        Warning[] warnings;
        string[] streamIDs;

        ExecutionHeader execHeader = new ExecutionHeader();

        rs.ExecutionHeaderValue = execHeader;
        rs.LoadReport( reportPath, historyID );

        rs.SetExecutionParameters( rptRequest.ReportParameters, "en-us" );

        return rs.Render(
            format,
            devInfo,
            out extension,
            out encoding,
            out mimeType,
            out warnings,
            out streamIDs );
    }
4

1 回答 1

1

事实证明,代码在部署时是在不同的用户帐户下运行的。该帐户无权读取任何数据。

于 2013-01-10T13:31:26.207 回答