我有一个报告,当正常运行时它返回正确的数据,但是当我通过报告执行服务运行时,报告不包含任何数据。我们传入一个包含我们过滤的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 );
}
答案 0 :(得分:1)
事实证明,代码在部署时在不同的用户帐户下运行。该帐户无权读取任何数据。