If you got "Cannot use Session-based caching mechanism while session is disabled.", it means that HttpContext.Current.Session is null.
In order to avoid this issue you need to
A) Specify the following attribute for your service:
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
B) Web.Config should have the following setting:
If you open package sniffer and find out that there are many requests with the following suffix "...FullRequest" or if you open log file and find a lot of "Document is out of cache" messages, then you should follow the instructions below:
1. Switch on IIS sessionState;
2. Switch on browser cookies.
Please check requests which are passed to ReportService (WCF).
To check requests, you need to do the following:
- To see requests in IE - http://blogs.msdn.com/b/ie/archive/2010/04/22/ie9-developer-tools-network-tab.aspx
- To see requests in FireFox - http://getfirebug.com/wiki/index.php/Net_Panel
- To see requests in Google Chrome - http://code.google.com/chrome/devtools/docs/network.html
- Also you can use fiddler - http://www.fiddler2.com/fiddler/help/
If your site settings can't be changed to support session state, then you may implement your own caching algorithm: