We are using Silverlight Report Viewer from Telerik_Reporting_Q3_2014 (the last version we were able to get with license). Our reporting service is implemented as a self-hosted wcf windows service (according to help instructions).
We need to scale our implementation across multiple servers and according to documentation we need to implement GetState and SetState inside our own class derived from ReportServiceBase. We have implemented our own service derived from ReportServiceBase and implemented mentioned methods. After some dev testing we found that default implementation and ours implementation both SetState with empty (not populated with data) Telerik.Reporting.Service.ReportServiceHistory record, but as regarding Get state - default implementation return object already populated with data, while ours return exactly the same object as we set (without populated info). As we can see all default implementations of IStateStorage (WebCacheStateStorage, HttpSessionStateStorage, LocalStateStorage) keep not serialized object but reference to it and during report processing this object is updated with new state. In our implementation we are using Redis and in case original object is updated - nothing changes with serialized version in the cache. In order to prove our assumption we implemented another cache as simple Dictionary<string, object> and in this case it works correctly (for single instance). It is obvious that such implementation will not work with multiple instances.
Anyway, we need to share saved state between different instances and it seems to be impossible with our implementation. Have we missed something important? Could someone please help us to understand how service state can be shared (v. Q3 2014)?
Thank you ahead, Oleg.