15 Answers, 1 is accepted
Regardless of the selected cache mechanism (file or database), the Reporting REST service must be deployed on a single instance in order to have a synchronized read/write access to the cache. Thus my suggestion is to host the service separately and enable CORS to allow the communication between the viewers and the service.
In addition, note that the HTML5 Report Viewer is not using exactly the MVC architecture. There is a client widget (the viewer) and a service which work combined. To preserve the report between requests we keep its state in cache. This is what makes the HTML5 Report Viewer suitable for any Web application.
Let us know if you have any further questions.
Regards,
Stef
Telerik
Check out the Telerik Platform - the only platform that combines a rich set of UI tools with powerful cloud services to develop web, hybrid and native mobile apps.

That sounds like a very limiting design decision for reporting. Reporting is certainly something that stands to gain hugely from scale out in the cloud. Limiting it to 1 instance, and especially when you already have an out of process cache, seems like shooting yourself in the foot. Most distributed caches can handle web farm concurrent access quite well! Please rethink this!
Cheers
John
Thank you for your feedback.
We consider covering the described scenario where applications are hosted on multiple machines. Until there is a solution for the described scenario, please use the suggestion from my previous post.
Regards,
Stef
Telerik
Check out the Telerik Platform - the only platform that combines a rich set of UI tools with powerful cloud services to develop web, hybrid and native mobile apps.



We are working on the feature for the Reporting REST service and it is included in Telerik Reporting Roadmap.
Regards,
Stef
Telerik
Check out the Telerik Platform - the only platform that combines a rich set of UI tools with powerful cloud services to develop web, hybrid and native mobile apps.


Sometimes it's on load, sometimes it's on refresh, but it happens a lot.
Are there any other configuration changes that need to be made to support multiple instances?
Error creating report document (Report = MyReport.trdx; Format = HTML5Interactive):
Client with ID '155607-0c80' not found. Expired.


So it that all I need to do? Or do I also need to implement a custom cache provider?
public class ReportsController : ReportsControllerBase
{
protected override Telerik.Reporting.Cache.Interfaces.IStorage CreateStorage()
{
return new RedisStorage(RedisSignalR.RedisClient);
}

@Richard: We believe there is an issue with the service's synchronization of requests to the cache storage, which will be fixed in a consecutive internal build in the next few weeks. Currently, we investigate the reported problem and will update you in your support ticket on the same question.
@John: If the application is hosted in a web farm, you will need to use the new IStorage for the cache where to create an instance of the selected type of storage e.g. Redis. If you use the old ICache, the service has to be deployed as a single instance for the whole application - REST Service storage.
If you experience the same error as Richard, please wait for the next internal build to test it.
Regards,
Stef
Telerik
Check out the Telerik Platform - the only platform that combines a rich set of UI tools with powerful cloud services to develop web, hybrid and native mobile apps.

protected override Telerik.Reporting.Cache.Interfaces.IStorage CreateStorage()
{
return new RedisStorage(RedisSignalR.RedisClient);
}
Correct.
In case you need further help, feel free to open a support ticket and send us a demo project to check your settings.
Regards,
Stef
Telerik
Check out the Telerik Platform - the only platform that combines a rich set of UI tools with powerful cloud services to develop web, hybrid and native mobile apps.