none
Microsoft.ReportingServices.Diagnostics.Utilities.ExecutionNotFoundException RRS feed

  • Question

  • Hello everyone,

     

    I am running ReportingServices, and have figured out that setting the timeout very high will more than likely prevent the Microsoft.ReportingServices.Diagnostics.Utilities.ExecutionNotFoundException from ever occurring.  However, we are very much into handling every exception in a friendly way so that if a user hits it (and they probably will), then we need to be able to do something for them.  Most of the other exceptions comeback as soap exceptions to the client side, but this one lives in the webform within our application.  Meaning that although ASP.NET says it's throwing this exception it does not get caught by our application, which makes it extremely difficult to give the end user any useful feed back.  This also will happen if any of the stored procedures that our reports use have failures.  SO finally the question is, How can I determine if this Exception is ever going to move beyond the aspnet_wp!webserver and back to the client app? And are there ways to force ASPNET to throw this exception all the way back to the client, possibly in a Soap call?  Anyway if you have any idea that would be great.  The other option we have discussed is looking at the value in the webform and if it matches Execution not found then raise an error on the client.

     

    Thanks in advance,

    Mac

     

    [3552] aspnet_wp!session!7!06/15/2007-17:24:25:: i INFO: LoadSnapshot: Item with session: uvo2w0yjq2sngg552tjd0h45, reportPath: /CorporateDeposit, userName: WXPL-WHITEM620\ASPNET not found in the database
    [3552] aspnet_wp!library!7!06/15/2007-17:24:25:: e ERROR: Throwing Microsoft.ReportingServices.Diagnostics.Utilities.ExecutionNotFoundException: Execution 'uvo2w0yjq2sngg552tjd0h45' cannot be found, ;
    [3552]  Info: Microsoft.ReportingServices.Diagnostics.Utilities.ExecutionNotFoundException: Execution 'uvo2w0yjq2sngg552tjd0h45' cannot be found
    [3552] aspnet_wp!webserver!7!06/15/2007-17:24:25:: e ERROR: Reporting Services error Microsoft.ReportingServices.Diagnostics.Utilities.ExecutionNotFoundException: Execution 'uvo2w0yjq2sngg552tjd0h45' cannot be found

    [3552]    at Microsoft.ReportingServices.WebServer.HttpClientRequest.InitForRequest(CatalogItemContext context, String userName)
    [3552]    at Microsoft.ReportingServices.WebServer.ReportServiceHttpHandler.RenderReport(HttpResponseStreamFactory streamFactory)
    [3552]    at Microsoft.ReportingServices.WebServer.ReportServiceHttpHandler.DoStreamedOperation(StreamedOperation operation)
    [3552]    at Microsoft.ReportingServices.WebServer.ReportServiceHttpHandler.RenderItem(ItemType itemType)
    [3552]    at Microsoft.ReportingServices.WebServer.ReportServiceHttpHandler.RenderPageContent()
    [3552]    at Microsoft.ReportingServices.WebServer.ReportServiceHttpHandler.RenderPage()

    Friday, June 15, 2007 9:43 PM

All replies

  • Hi

    I currently have a similar problem. Did you ever find a solution to get that meaningful errormessage? 

    Greetz
    Vicky
    Monday, June 29, 2009 6:41 AM
  • Interesting scenario - please file a bug on http://connect.microsoft.com so that we can look at how best to address this scenario in a future version of the report viewer control. 

    I will move this post to the report viewer forum to see if some more knowledgble eyes know of a better workaround than what I will suggest below...

    For the time being, you can get the ExecutionID returned in the Headers collection of the ServerReport class. Then you can feed the ExecutionID to the GetExecutionInfo SOAP call.   This call will throw an exception if the execution is not found.  In your code you'd have to manage the interactions with the ReportViewer to ensure you make the call whenever the user takes an action.   Clearly, there is a performance penalty here...

    The other thing to do also relies on getting the ExecutionID in the manner described above. But in this case you'd keep around the ExecutionIDs that the user has initiated.   Executions live for 10 mintues (default value) on the server, unless they are accessed.  This means that your application could build a 'ping' logic to access the Executions the user has accessed. Or you could keep a 'last action' time and just warn the user if they try to access an execution after 10 mintues of idle time.   To interact with the execution, just call GetExecutionInfo - if it succeeds, then the execution expiry will be 10 mintues from the time of the API call.

    Hope that helps,
    -Lukasz



    This posting is provided "AS IS" with no warranties, and confers no rights.
    Tuesday, June 30, 2009 4:26 PM