我在 MS 报告服务中有一份报告,它在屏幕上呈现得很好(通过报告服务 Web 界面查看报告时),但是当我将其导出为 PDF 时,它出错了。
尝试通过 Web 服务访问报告时会显示以下 YSOD,但在从 Reporting Services Web 界面呈现为 PDF 时也会出现报告错误。
关于如何追踪导致此问题的原因的任何想法?
Server Error in '/****' Application.
--------------------------------------------------------------------------------
An error occurred during rendering of the report. ---> Microsoft.ReportingServices.ReportProcessing.UnhandledReportRenderingException: An error occurred during rendering of the report. ---> Microsoft.ReportingServices.OnDemandReportRendering.ReportRenderingException: An error occurred during rendering of the report. ---> System.NullReferenceException: Object reference not set to an instance of an object.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Web.Services.Protocols.SoapException: An error occurred during rendering of the report. ---> Microsoft.ReportingServices.ReportProcessing.UnhandledReportRenderingException: An error occurred during rendering of the report. ---> Microsoft.ReportingServices.OnDemandReportRendering.ReportRenderingException: An error occurred during rendering of the report. ---> System.NullReferenceException: Object reference not set to an instance of an object.
Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
Stack Trace:
[SoapException: An error occurred during rendering of the report. ---> Microsoft.ReportingServices.ReportProcessing.UnhandledReportRenderingException: An error occurred during rendering of the report. ---> Microsoft.ReportingServices.OnDemandReportRendering.ReportRenderingException: An error occurred during rendering of the report. ---> System.NullReferenceException: Object reference not set to an instance of an object.]
System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall) +431678
System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters) +204
EZTrac.Infrastructure.Reporting.Services.Impl.ReportExecutionService.Render(String Format, String DeviceInfo, String& Extension, String& MimeType, String& Encoding, Warning[]& Warnings, String[]& StreamIds) in d:\TeamBuild\WorkingDirectory\Nightly Build\EZTrac.Infrastructure.Reporting\Services\Impl\ReportExecutionService.cs:827
EZTrac.Infrastructure.Reporting.Services.Impl.PaccarReportService.GetReport(IReport report) in d:\TeamBuild\WorkingDirectory\Nightly Build\EZTrac.Infrastructure.Reporting\Services\Impl\PaccarReportService.cs:75
EZTrac.Controllers.ReportController.GenerateReport(IReport report) in d:\TeamBuild\WorkingDirectory\Nightly Build\EZTrac\Controllers\ReportController.cs:181
EZTrac.Controllers.ReportController.GetReportFileStreamResult(ReportInputBase reportInput) in d:\TeamBuild\WorkingDirectory\Nightly Build\EZTrac\Controllers\ReportController.cs:174
EZTrac.Controllers.ReportController.DealerTransactionReportDownload(DealerTransactionForm form) in d:\TeamBuild\WorkingDirectory\Nightly Build\EZTrac\Controllers\ReportController.cs:78
lambda_method(ExecutionScope , ControllerBase , Object[] ) +85
System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters) +17
System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters) +178
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +24
System.Web.Mvc.<>c__DisplayClassa.<InvokeActionMethodWithFilters>b__7() +53
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation) +258
System.Web.Mvc.<>c__DisplayClassc.<InvokeActionMethodWithFilters>b__9() +20
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation) +258
System.Web.Mvc.<>c__DisplayClassc.<InvokeActionMethodWithFilters>b__9() +20
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext controllerContext, IList`1 filters, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +193
System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName) +382
System.Web.Mvc.Controller.ExecuteCore() +123
System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext) +23
System.Web.Mvc.ControllerBase.System.Web.Mvc.IController.Execute(RequestContext requestContext) +7
System.Web.Mvc.MvcHandler.ProcessRequest(HttpContextBase httpContext) +144
System.Web.Mvc.MvcHandler.ProcessRequest(HttpContext httpContext) +54
System.Web.Mvc.MvcHandler.System.Web.IHttpHandler.ProcessRequest(HttpContext httpContext) +7
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +181
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +75
--------------------------------------------------------------------------------
Version Information: Microsoft .NET Framework Version:2.0.50727.3603; ASP.NET Version:2.0.50727.3053
编辑
看起来当报告非常大(不确定阈值是多少)时,PDF 无法呈现。 (例如,40 多个 PDF 页面会导致错误,但不是 5 或更少)。
最佳答案
尝试查看呈现报告的服务器上的错误日志可能是个好主意。看看 RS 是否发生了一些特定的事情。您能否将 Visual Studio 的本地报告生成为 PDF?
如果它实际上超时,我以前见过类似的行为。这份报告是否需要一些时间来制作?导出到其他格式怎么样?
关于reporting-services - 从 Reporting Services 呈现为 PDF 时发生错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1884034/