我在使用水晶报告时遇到问题...此错误仅发生在我的应用程序 Web IIS 中
当我尝试加载 doc .rpt 时,会抛出一个异常并仅显示一条消息:
加载报告失败。
本地主机中的相同代码工作正常...
这是我创建文档的方法:
try
{
Log("entered the crystal method");
HttpCookie cookie = Request.Cookies["CookiePA"];
Log("loaded the cookies");
var docCrystal = new ReportDocument();
Log("created the class -> ReportDocument crystalReport = new ReportDocument();");
string reportPath = Server.MapPath("~/alu/ANEXO_CONTRATO_EDUCACIONAIS.rpt");
Log("Report path: " + reportPath);
docCrystal.Load(Server.MapPath("~/alu/ANEXO_CONTRATO_EDUCACIONAIS.rpt")); //erro occurs here
Log("loaded the crystal report file");
docCrystal.SetDatabaseLogon("consultarelestag", "PASS", "IP_PUBLIC_NUMBER\\SQL01", "SITE");
Log("logged in to crystal");
docCrystal.SetParameterValue("@MATRICULA", Convert.ToInt32(ObjLogin.intMatricula));
docCrystal.SetParameterValue("@IP", ipAddress);
Log("passed the parameters");
var attachmentName = "CONT_ENF_" + ObjLogin.intMatricula + "_" + (DateTime.Now).ToString("ddMMyyyy_HH_mm_ss", CultureInfo.InvariantCulture) + ".pdf";
Log("created file name ->" + attachmentName);
docCrystal.ExportToDisk(ExportFormatType.PortableDocFormat, Server.MapPath("~/alunos/anexo/" + attachmentName));
Log("generated the file");
}
catch (Exception ex)
{
Log("The following error occurred: ", ex);
}
我创建了一个日志.txt,以查看错误发生的确切时刻,并且代码在此停止:
docCrystal.Load(Server.MapPath("~/alu/ANEXO_CONTRATO_EDUCACIONAIS.rpt"));
我检查了我的电脑和服务器中水晶的运行时是否相同..它们都使用运行时的版本:SP 34,我还检查了池应用程序并将启用32位设置为true..仍然不起作用
PS:文档位置没问题,路径有ANEXO_CONTRATO_EDUCACIONAIS.rpt
更新!
在 Web.config 中删除
<identity impersonate="true"/>
后,工作正常!