Solved

Exporting to pdf from crystal reports stopped working

Posted on 2007-11-30
10
2,051 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
Webinar: Aligning, Automating, Winning

Join Dan Russo, Senior Manager of Operations Intelligence, for an in-depth discussion on how Dealertrack, leading provider of integrated digital solutions for the automotive industry, transformed their DevOps processes to increase collaboration and move with greater velocity.

 
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

Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
Open a link in vb.net 2 26
how to remove duplicate code from my project 5 48
Code enhancement 4 33
Timezone help 5 20
This document covers how to connect to SQL Server and browse its contents.  It is meant for those new to Visual Studio and/or working with Microsoft SQL Server.  It is not a guide to building SQL Server database connections in your code.  This is mo…
Real-time is more about the business, not the technology. In day-to-day life, to make real-time decisions like buying or investing, business needs the latest information(e.g. Gold Rate/Stock Rate). Unlike traditional days, you need not wait for a fe…

749 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