Report Viewer MissingUrlParameter and ArgumentNullException

4 posts, 0 answers
  1. Luke
    Luke avatar
    8 posts
    Member since:
    Jul 2008

    Posted 13 Jan 2014 Link to this post

    I'm occasionally having a user which is throwing the following errors, which appear to be associated with the ReportViewer control and/or caching. I can't repro. Please advise:

    System.ArgumentException: MissingUrlParameter<br>Parameter name: Name<br>   at Telerik.ReportViewer.WebForms.EmbeddedResourceOperation.PerformOperationOverride() in c:\temp\reporting\@RBuild-19923\Reporting_Build\Source\Code\Telerik.ReportViewer.WebForms\EmbeddedResourceOperation.cs:line 23<br>   at Telerik.ReportViewer.WebForms.HandlerOperation.PerformOperation(HttpContext context, ICacheManager cacheManager) in c:\temp\reporting\@RBuild-19923\Reporting_Build\Source\Code\Telerik.ReportViewer.WebForms\HandlerOperation.cs:line 47<br>   at Telerik.ReportViewer.WebForms.BasicHandler.ProcessRequest(HttpContext context) in c:\temp\reporting\@RBuild-19923\Reporting_Build\Source\Code\Telerik.ReportViewer.WebForms\HttpHandler.cs:line 189<br>   at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()<br>   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)


    and

    System.ArgumentNullException: Value cannot be null.<br>Parameter name: key<br>   at System.Web.Caching.CacheKey..ctor(String key, Boolean isPublic)<br>   at System.Web.Caching.CacheInternal.DoGet(Boolean isPublic, String key, CacheGetOptions getOptions)<br>   at Telerik.ReportViewer.WebForms.WebCacheManager.get_Item(String key) in c:\temp\reporting\@RBuild-19923\Reporting_Build\Source\Code\Telerik.ReportViewer.WebForms\WebCacheManager.cs:line 22<br>   at Telerik.ReportViewer.WebForms.HttpHandler.ValidateStreamManager(HttpContext context) in c:\temp\reporting\@RBuild-19923\Reporting_Build\Source\Code\Telerik.ReportViewer.WebForms\HttpHandler.cs:line 100<br>   at Telerik.ReportViewer.WebForms.HttpHandler.GetRequiredSessionStateMode(HttpContext context) in c:\temp\reporting\@RBuild-19923\Reporting_Build\Source\Code\Telerik.ReportViewer.WebForms\HttpHandler.cs:line 74<br>   at Telerik.ReportViewer.WebForms.HttpHandler.GetHandler(HttpContext context, String requestType, String url, String pathTranslated) in c:\temp\reporting\@RBuild-19923\Reporting_Build\Source\Code\Telerik.ReportViewer.WebForms\HttpHandler.cs:line 28<br>   at System.Web.HttpApplication.MaterializeHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()<br>   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)<br>
  2. Stef
    Admin
    Stef avatar
    3036 posts

    Posted 16 Jan 2014 Link to this post

    Hello Luke,

    About the first exception, please check if there is any applied URL rewriting which invalidates the request to our Telerik.ReportViewer.axd handler, which serves the embedded resources as images to the client.

    On your second question, please check if at the time of the error the session has expired. Test using File or ADO.NET Cache provider in your application. In case you are running the application in out-proc session state mode, check the requirements listed in the Design Considerations for Out-proc Session State help article.

    If you need further help, feel free to open a support ticket and send us a sample project illustrating your settings and steps how to reproduce the described problems.

    Regards,
    Stef
    Telerik

    New HTML5/JS REPORT VIEWER with MOBILE AND TOUCH SUPPORT available in Telerik Reporting Q3 2013! Get the new Reporting version from your account or download a trial.

  3. DevCraft banner
  4. Luke
    Luke avatar
    8 posts
    Member since:
    Jul 2008

    Posted 21 Jan 2014 Link to this post

    Hello,


    1) If I am doing any URL rewriting it's not our intent. How would I know what would cause this? We are essentially just doing like so:



    rptX r100 = new rptX();

    r100.DataSource = _context.ReportPropertyX.ToList();

    InstanceReportSource irs100 = new InstanceReportSource();

    irs100.ReportDocument = r100;

    this.ReportViewer1.ReportSource = irs100;



    That's it.



    2) >>>please check if at the time of the error the session has expired. Test using File or ADO.NET Cache provider in your application



    We are not configuring cache in any particular way. It's using the default behavior. I've reviewed the documentation on configuring the cache provider, but I don't see how to "check if at the time of the error the session has expired". What would I do in that case anyway? Which cache provider do you recommend? I don't have access to the web hosting machine where our application is located, so I'm not sure what applicable settings for "basepath" and so forth should even be.



    If I had a way to repro the issue I would not have submitted a support request in all likelihood...

  5. Stef
    Admin
    Stef avatar
    3036 posts

    Posted 24 Jan 2014 Link to this post

    Hello Luke,

    The reports are generated on the server and are served through the http handler to the ASP.NET ReportViewer. This means the whole report instance with its resources is kept in session, so that it is available for the report viewer to page, print and export. If the session expires the resources will be lost and there may appear similar issues. For more details take a look at the Report is unavailable or session has expired error message KB article. Thus check the session state timeout and try to extend it.

    To improve the performance and control where resources are cached you can configure the application to use File or Database reporting cache provider. Using File cache provider, you will need to grant the users access to the set folder.

    Regards,
    Stef
    Telerik

    New HTML5/JS REPORT VIEWER with MOBILE AND TOUCH SUPPORT available in Telerik Reporting Q3 2013! Get the new Reporting version from your account or download a trial.

Back to Top