Solved

Exporting to pdf from crystal reports stopped working

Posted on 2007-11-30
10
2,069 Views
Last Modified: 2013-12-16
I have a piece of code that was working fine and is all of a sudden throwing the following error

{Unable to evaluate expression because the code is optimized or a native frame is on top of the call stack.}

on this line -- rd.ExportToHttpResponse(ExportFormatType.PortableDocFormat, context.Response, false, string.Empty);

rd is a ReportDocument.

this code was working fine. I do not know why it is throwing this error now! please help I need this solved!
public void ProcessRequest(HttpContext context)
    {
        ReportDocument rd = new ReportDocument();
        try
        {
            string path = context.Server.MapPath(ResolveUrl(GetReportPath()));
            rd.Load(path);
 
            if (GetIsODBC() == true)
            {
                string user = System.Configuration.ConfigurationManager.AppSettings["ReportUserName"];
                string password = System.Configuration.ConfigurationManager.AppSettings["ReportUserPassword"];
                rd.SetDatabaseLogon(user, password);
            }
            this.SetReportDataSources(context, rd); //set the data sources
 
            context.Response.Clear();
            rd.ExportToHttpResponse(ExportFormatType.PortableDocFormat, context.Response, false, string.Empty);
 
            context.Response.ContentType = "application/pdf";
            context.Response.Flush();
            context.Response.Close();
        }
        catch (Exception e)
        {
            context.Response.Clear();
            context.Response.Write(e.ToString());
            context.Response.Flush();
            context.Response.Close();
        }
        finally
        {
            rd.Close();
        }
    }

Open in new window

0
Comment
Question by:mattolan
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
10 Comments
 
LVL 21

Expert Comment

by:surajguptha
ID: 20384466
Check out this article if u havent done it already
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=268544&SiteID=1
0
 
LVL 4

Expert Comment

by:habibb
ID: 20393817
se if there is any error in your formulas used in rpt file. try to reinstall pdf.
verify your schecm on which report is designed.
0
 
LVL 2

Author Comment

by:mattolan
ID: 20396078
ok, I found the problem, not sure why this was a problem though. crystal must do something wierd that I'm unaware of.

I deleted the catch section of the try catch finally and all is good

catch (Exception e)
{
     context.Response.Clear();
     context.Response.Write(e.ToString());
     context.Response.Flush();
     context.Response.Close();
}

Open in new window

0
Get free NFR key for Veeam Availability Suite 9.5

Veeam is happy to provide a free NFR license (1 year, 2 sockets) to all certified IT Pros. The license allows for the non-production use of Veeam Availability Suite v9.5 in your home lab, without any feature limitations. It works for both VMware and Hyper-V environments

 
LVL 21

Expert Comment

by:surajguptha
ID: 20396136
wierd :)
0
 
LVL 21

Expert Comment

by:surajguptha
ID: 20396151
If u removed the catch block and if that fixed it, it means that it was going to the catch block before because of an exception and the catch which handled that exception threw your exception.
If you removed the catch, the original exception should have been thrown isnt it?
arghhh
0
 
LVL 2

Author Comment

by:mattolan
ID: 20396229
no, If I remove the catch, no exception is thrown. in fact the code works and I get the intended results!

arghhh is correct!
0
 
LVL 2

Accepted Solution

by:
mattolan earned 0 total points
ID: 20411757
it wasn't specifically the catch that was breaking it was the code inside the catch, crystal must have been messing with the Responce within its code (being a black box to me I don't really know what they are doing), and this must have been in conflict with my attempt to write to the reponce, because the below code on its own should not have caused me an issue
     context.Response.Clear();
     context.Response.Write(e.ToString());
     context.Response.Flush();
     context.Response.Close();

Open in new window

0
 
LVL 21

Expert Comment

by:surajguptha
ID: 20411871
May be its messin the response up... Thanks for letting me know :)
0
 
LVL 1

Expert Comment

by:modus_operandi
ID: 20437971
Closed, 500 points refunded.
modus_operandi
EE Moderator
0

Featured Post

Tutorials alone can't teach real engineering

So we built better training tools.

-Hands-on Labs
-Instructor Mentoring
-Scenario-Based Tests
-Dedicated Cloud Servers

All at your fingertips. What are you waiting for?

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article describes relatively difficult and non-obvious issues that are likely to arise when creating COM class in Visual Studio and deploying it by professional MSI-authoring tools. It is assumed that the reader is already familiar with the cla…
A long time ago (May 2011), I have written an article showing you how to create a DLL using Visual Studio 2005 to be hosted in SQL Server 2005. That was valid at that time and it is still valid if you are still using these versions. You can still re…
If you’ve ever visited a web page and noticed a cool font that you really liked the look of, but couldn’t figure out which font it was so that you could use it for your own work, then this video is for you! In this Micro Tutorial, you'll learn yo…
Sometimes it takes a new vantage point, apart from our everyday security practices, to truly see our Active Directory (AD) vulnerabilities. We get used to implementing the same techniques and checking the same areas for a breach. This pattern can re…

615 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question