我正在尝试直接从代码生成报告(之后通过邮件发送)。我在Windows服务中做到这一点。
所以这就是我正在做的事情:
Dim rview As New ReportViewer()
Dim reportServerAddress As String = "http://server/Reports_client"
rview.ServerReport.ReportServerUrl = New Uri(reportServerAddress)
Dim paramList As New List(Of Microsoft.Reporting.WinForms.ReportParameter)
paramList.Add(New Microsoft.Reporting.WinForms.ReportParameter("param1", t.Value))
paramList.Add(New Microsoft.Reporting.WinForms.ReportParameter("CurrentDate", Date.Now))
Dim reportsDirectory As String = "AppName.Reports"
Dim reportPath As String = String.Format("/{0}/{1}", reportsDirectory, reportName)
rview.ServerReport.ReportPath = reportPath
rview.ServerReport.SetParameters(paramList) 'This is where I get the exception
Dim mimeType, encoding, extension, deviceInfo As String
Dim streamids As String()
Dim warnings As Microsoft.Reporting.WinForms.Warning()
deviceInfo = "<DeviceInfo><SimplePageHeaders>True</SimplePageHeaders></DeviceInfo>"
Dim format As String = "PDF"
Dim bytes As Byte() = rview.ServerReport.Render(format, deviceInfo, mimeType, encoding, extension, streamids, warnings)
调试此代码时,我看到它会抛出MissingEndpointException
我在SetParameters(paramList)
处显示此消息:
尝试连接报告 服务器失败。检查你的连接 信息和报告服务器 是一个兼容的版本。
查看服务器的日志文件,我可以看到:
!UI ReportManager_0-8 878 6月2日/ 2010-11:!34:36 :: 未处理的异常: System.Web.HttpException:该文件 '/Reports_client/ReportExecution2005.asmx' 不存在。在 System.Web.UI.Util.CheckVirtualFileExists(VirtualPath virtualPath)at System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath,Boolean noBuild,Boolean allowCrossApp,Boolean allowBuildInPrecompile)at System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext的 上下文,VirtualPath虚拟路径, 布尔值noBuild,布尔值 allowCrossApp,Boolean allowBuildInPrecompile)at System.Web.Compilation.BuildManager.GetVPathBuildResult(HttpContext的 上下文,VirtualPath虚拟路径, 布尔值noBuild,布尔值 allowCrossApp,Boolean allowBuildInPrecompile)at System.Web.Compilation.BuildManager.GetVPathBuildResult(HttpContext的 context,VirtualPath virtualPath)
在 System.Web.UI.WebServiceParser.GetCompiledType(字符串 inputFile,HttpContext context)at System.Web.Services.Protocols.WebServiceHandlerFactory.GetHandler(HttpContext的 context,String verb,String url, String filePath)at System.Web.HttpApplication.MapHttpHandler(HttpContext的 context,String requestType, VirtualPath路径,String pathTranslated,Boolean useAppConfig) 在 System.Web.HttpApplication.MapHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() 在 System.Web.HttpApplication.ExecuteStep(IExecutionStep 步,布尔&amp; completedSynchronously)
我在网上找不到适合我问题的资源。有人有线索吗 ?我能够从Web应用程序查看报告,所以我确定服务器正在运行。
提前致谢。