Here is how RadChart works. When the page request is processed on the server, an image is created and saved in the session or in the TempImages folder, while an <img>
tag is rendered in the page. The value of its ImgSrc
attribute looks similar to this:
When the browser requests the image, the ChartHttpHandler is responsible for retrieving the image from the session state and for serving it to the client. It also deletes the image from the session / filesystem and puts it in the cache with 5 minutes expiration time.
There might be different reasons for the error that you are getting:
- ChartHttpHandler is not configured correctly -- the problem will be persistent
- Output caching with expiration time larger that 5 minutes is deployed. Possible problems are described in this forum post.
- The image request is not processed by the machine, which has processed the page request . The solution here would be to implement State server or SQL server session state mode or sticky session, ensuring that all the requests from one user will be handled by the same machine.
An alternative solution involves disabling the session state usage
for the chart. In this case you will need to provide a shared folder accessible from all the machines in the web farm and map it as a virtual directory within your web application. Then set this folder as TempImagesFolder.
If you want to get updates on new releases, tips and tricks and sneak peeks at our product labs directly from the developers working on the RadControls for ASP.NET AJAX, subscribe to the blog feed