我在服务器上收到错误"加载报告失败",它在localhost上运行没有错误.我正在使用VS 2008和.Net 3.5.
这是我的代码:
ReportDocument reportDocument = new ReportDocument();
String filePath = @"C:\abcSpaces\abc.com\xyz.com\wwwroot\Order Fulfilment.rpt";//full path
// I have tried OrderFullfilment.rpt and ~/OrderFullfilment.rpt and /OrderFullfilment.rpt
try
{
reportDocument.Load(filePath);
CrystalReportViewer1.ReportSource = reportDocument;
}
catch(Exception ex){
Label1.Text = ex.Message;
}
Run Code Online (Sandbox Code Playgroud)
Aspx页面部分:
<CR:CrystalReportViewer ID="CrystalReportViewer1" runat="server" Height="1291px"
ReuseParameterValuesOnRefresh="True" Width="1125px" />
Run Code Online (Sandbox Code Playgroud)
^我尝试过使用
<CR:CrystalReportSource ID="CrystalReportSource1" runat="server">
<Report FileName="expenseRep_summary.rpt">
</Report>
</CR:CrystalReportSource>
Run Code Online (Sandbox Code Playgroud)
当然没有运气......
我的web.config部分用于引用程序集:
<compilation debug="true">
<assemblies>
<add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="MySql.Data, …Run Code Online (Sandbox Code Playgroud) 过去几天我一直在研究这个问题,我似乎无法弄明白.
我有一个c# WinForms应用程序使用它ReportDocument来加载报表并将其放入Crystal Report Viewer,以便用户可以预览它.目的是预览不同的统计信息,表单永远不会关闭.有一个计时器可以运行并向查看器加载不同的报告.
当发生这种情况时,内存使用和句柄(我可以在任务管理器中看到它们)不断增加.当应用程序启动时,它使用大约30 MB,当它运行10分钟时,它使用大约200 MB并且它不断增加.
我在互联网上阅读了很多关于这个问题的内容,我发现ReportDocument需要关闭和处理查看器.不幸的是,这并没有解决它.报告中的连接类型OLE DB(ADO)是从SQL Server数据库中检索数据.
简单地说,Form1有一个计时器,当它过去时它会处理Crystal Reports Viewer并调用垃圾收集器.然后加载新报告.
这是我的示例代码
Form1中:
private ReportDocument rpt;
private void timer2_Tick(object sender, EventArgs e)
{
timer2.Enabled = false;
try
{
panel1.Hide();
if (rpt != null)
{
foreach (Table t in rpd.Database.Tables)
t.Dispose();
rpt.Close();
rpt.Dispose();
rpt = null;
GC.Collect();
}
panel1.Controls.Remove(CRVviewer);
if (CRVviewer != null)
{
CRVviewer.Dispose();
GC.Collect();
}
// The problem starts from here:
var report = …Run Code Online (Sandbox Code Playgroud) 在运行Crystal Reports 2008 SP2的Web服务器上,我收到错误"已达到系统管理员配置的最大报表处理作业限制".
在线研究了这个主题后,我遇到了一个修复程序,如果你改变一个注册表值,特别是HKEY_LOCAL_MACHINE\SOFTWARE\Business Objects\Suite 12.0\Report Application Server\InprocServer\PrintJobLimit为"-1",你就会关闭作业限制.
我已经改变了这个值,但仍然收到错误.-1不应该阻止这个吗?
如果您对此错误有任何经验,我将非常感谢您听到您如何解决它.
谢谢!