【发布时间】:2010-03-04 04:13:51
【问题描述】:
我对水晶报告有一个严重的问题。
在我的开发环境中运行或在我的本地机器上调试时,它工作正常。
但是当应用程序发布到 windows server 2003 时,它会出现可怕的“您请求的报告需要更多信息”消息
我没有运气试图摆脱这条消息
有人知道我可以尝试什么吗?
这里有更多信息。我在 aspx 页面中使用占位符,然后在代码隐藏中设置用户/密码和数据库 我无法让它与数据集一起使用,并发现我必须在 cr 设计器中分配 odbc 连接。然后在后面的代码中根据需要更改上述细节。
这样做是因为同一份报告可以从 3 个不同的数据库中获取数据(实时开发和培训)
protected override void Page_Load(object sender, EventArgs e)
{
base.Page_Load(sender, e);
CrystalReportSource1.ReportDocument.Load(Server.MapPath(@"~/Reports/Report5asp.rpt"));
CrystalReportViewer1.ReportSource = ConfigureCrystalReports(CrystalReportSource1.ReportDocument,CrystalReportViewer1);
// parameters
CrystalReportViewer1.ParameterFieldInfo.Clear();
AddParameter("DIid", _app.Data["DIid"], CrystalReportViewer1.ParameterFieldInfo);
AddParameter("EEid", _app.Data["EEid"], CrystalReportViewer1.ParameterFieldInfo);
AddParameter("CTid", _app.Data["CTid"], CrystalReportViewer1.ParameterFieldInfo);
}
public ReportDocument ConfigureCrystalReports(ReportDocument report, CrystalReportViewer viewer)
{
String _connectionString = _app.ConnectionString();
String dsn = _app.DSN();
SqlConnectionStringBuilder SConn = new SqlConnectionStringBuilder(_connectionString);
TableLogOnInfos crtableLogoninfos = new TableLogOnInfos();
TableLogOnInfo crtableLogoninfo = new TableLogOnInfo();
ConnectionInfo crConnectionInfo = new ConnectionInfo();
crConnectionInfo.ServerName = dsn;// SConn.DataSource;
crConnectionInfo.DatabaseName = SConn.InitialCatalog;
crConnectionInfo.UserID = SConn.UserID;
crConnectionInfo.Password = SConn.Password;
crConnectionInfo.Type = ConnectionInfoType.SQL;
crConnectionInfo.IntegratedSecurity = false;
foreach (CrystalDecisions.CrystalReports.Engine.Table CrTable in report.Database.Tables)
{
crtableLogoninfo = CrTable.LogOnInfo;
crtableLogoninfo.ConnectionInfo = crConnectionInfo;
CrTable.ApplyLogOnInfo(crtableLogoninfo);
}
return report;
}
如前所述,当部署在 winserver 2003 上时,这在我用于开发的 XP 机器上运行良好,但出现错误
一些有趣的附加信息
我将开发转移到我的家用机器上,这样我可以在这个周末解决这个问题。
所以现在我在同一台机器上开发调试和测试!
在 VS2008 中,我可以毫无问题地编辑和预览报告 如果我启动调试器,我可以毫无问题地在浏览器中查看报告
但是,如果我将网站发布到同一台机器上的另一个文件夹并启动 IIS 并尝试浏览到报告,我会收到上述错误。其他一切都按预期工作。
IIS 在与 VS2008 不同的权限下运行,所以可能与此有关,但我尝试了很多不同的权限,但无法让它运行。
【问题讨论】:
标签: .net crystal-reports windows-server-2003