This is a migrated thread and some comments may be shown as answers.

Report Viewer MissingUrlParameter and ArgumentNullException

3 Answers 109 Views
General Discussions
This is a migrated thread and some comments may be shown as answers.
Luke
Top achievements
Rank 1
Luke asked on 13 Jan 2014, 04:49 PM
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>

3 Answers, 1 is accepted

Sort by
0
Stef
Telerik team
answered on 16 Jan 2014, 03:55 PM
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.

0
Luke
Top achievements
Rank 1
answered on 21 Jan 2014, 12:52 PM

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...

0
Stef
Telerik team
answered on 24 Jan 2014, 03:36 PM
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.

Tags
General Discussions
Asked by
Luke
Top achievements
Rank 1
Answers by
Stef
Telerik team
Luke
Top achievements
Rank 1
Share this question
or