I have had an issue where there are different versions of assemblies loaded for the Microsoft report viewer. This was caused because the web config was referencing one version of the dll's and the pages were referencing another.
To fix this issue I removed all references to the report viewer assembly that were contained in aspx pages, and added an entry to the reportviewer dll to the web config so it can be accessed via the specified tag.
extracts from the web.config, here you can see the referenced ReportViewer assemblies, and where the controls are.
You can then use the report viewer controls in an asp page with the following: