C# ExportToHttpResponse给出了“出口到HttpResponse”;无法计算表达式,因为代码已优化或本机帧位于调用堆栈顶部。”;
加载ASP.Net页面时,将调用报表函数C# ExportToHttpResponse给出了“出口到HttpResponse”;无法计算表达式,因为代码已优化或本机帧位于调用堆栈顶部。”;,c#,asp.net,crystal-reports,httpresponse,C#,Asp.net,Crystal Reports,Httpresponse,加载ASP.Net页面时,将调用报表函数 protected void Page_Load(object sender, EventArgs e) { GlobalFunctions obj = new GlobalFunctions(); obj.GetReport(Page PageName, string ReportName); } GetReport定义为: public void GetReport(Page PageName, string ReportName)
protected void Page_Load(object sender, EventArgs e)
{
GlobalFunctions obj = new GlobalFunctions();
obj.GetReport(Page PageName, string ReportName);
}
GetReport定义为:
public void GetReport(Page PageName, string ReportName)
{
ReportClass rpt = new ReportClass();
rpt = GetReportFromDLL(ReportName); //No error here
rpt.ExportToHttpResponse(ExportFormatType.PortableDocFormat, Response, true, ReportName);
}
错误:
“响应”不能通过类访问
我试着用“HttpContext.Current.Response”代替“Response”
但我得到了这个错误:
public void GetReport(Page PageName, string ReportName)
{
try
{
ReportClass rpt = new ReportClass();
rpt = GetReportFromDLL(ReportName); //No error here
rpt.ExportToHttpResponse(ExportFormatType.PortableDocFormat, Response, true, ReportName);
}
catch (Exception ex)
{
//do nothing
}
}
“无法计算表达式,因为代码已优化或存在错误。”
本机帧位于调用堆栈的顶部。“
请帮忙 我不知道为什么不能将响应传递给函数。。。试着跟随
public void GetReport(HttpResponse response, string ReportName)...
并称为:
obj.GetReport(Response, "some report name");
经过一番努力,我发现exportToHttpReporte总是抛出一个错误,即“无法计算表达式,因为代码已优化或本机帧位于调用堆栈顶部。”如果整个代码块不在Try-Catch块中。 以下是避免此错误的解决方案:
public void GetReport(Page PageName, string ReportName)
{
try
{
ReportClass rpt = new ReportClass();
rpt = GetReportFromDLL(ReportName); //No error here
rpt.ExportToHttpResponse(ExportFormatType.PortableDocFormat, Response, true, ReportName);
}
catch (Exception ex)
{
//do nothing
}
}
这只会删除错误,并在HttpResponse上打印报告。您是否尝试过使用引用而不是实例?我认为Page在复制方面有问题。我怀疑PASS <代码>响应<代码>是因为代码风格不能接受,但无论如何都要尝试……CAMRON,我应该作为参考传递什么?请clarify@AlexeiLevenkov-如果GetReport函数位于Default.aspx页面中,则代码有效。目前,由于GetReport函数驻留在GlobalFunctions.cs中,“Response”不可访问。很抱歉没有澄清,我对提供建议不太熟悉。我认为页面是可变的。如果我没记错的话,页面实例是在实现本身的范围之外创建的,实际上是在服务器响应的实例之外创建的。我认为页面实例是由产生IIS响应的线程创建的,并且受到保护,不被复制。谢谢Alexie,但我仍然收到相同的错误{无法计算表达式,因为代码已优化,或者调用堆栈顶部有本机框架。}@IshGoel,你知道你发布的错误与代码无关,是吗?搜索错误文本对于开发人员来说是一项重要的技能,但很少有,下面是错误的解释。现在,您的代码很可能有bug,这就是您最终调试它的原因,但它不太可能与您试图修复的代码有关。这是解决方案吗?