Использование элемента управления ReportViewer 9 в VS 2010
Я пишу приложение ASP.NET, которое использует SQL Server 2005 с настройкой SSRS. Я хочу использовать элемент управления ReportViewer, но получаю сообщение об ошибке при использовании ReportViewer 10, потому что ему нужна SSRS 2008.
Как я могу использовать ReportViewer 9 в своем приложении. Я добавил ссылку на версию Microsoft.ReportViewer.WebForms.dll 9 и удалил ссылку на версию 10.
Моя разметка выглядит следующим образом:
<%@ Register Assembly="Microsoft.ReportViewer.WebForms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
Namespace="Microsoft.Reporting.WebForms" TagPrefix="rsweb" %>
<!-- standard markup -->
<rsweb:ReportViewer ID="ReportViewer1" runat="server"></rsweb:ReportViewer>
но когда я пытаюсь запустить это, я получаю следующую ошибку:
CS0433: Тип 'Microsoft.Reporting.WebForms.ReportViewer' существует в обоих 'C:\WINDOWS\сборка\GAC_MSIL\Microsoft.ReportViewer.WebForms\10.0.0.0__b03f5f7f11d50a3a\Microsoft.ReportViewer.WebForms.dll' а также 'C:\WINDOWS\Assembly\GAC_MSIL\Microsoft.ReportViewer.WebForms\9.0.0.0__b03f5f7f11d50a3a\Microsoft.ReportViewer.WebForms.dll'
Что я пропустил!
Update:
При попытке использовать ReportViewer 10 я получаю следующую ошибку:
"Для обработки удаленного отчета требуется Отчеты Microsoft SQL Server 2008 Услуги или позже.
Ответы
Ответ 1
Понял, забыл изменить 3 ссылки в файле web.config:
внутри HttpHandler:
<add verb="*" path="Reserved.ReportViewerWebControl.axd" type = "Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
и внутри сборок:
<add assembly="Microsoft.ReportViewer.WebForms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
<add assembly="Microsoft.ReportViewer.Common, Version=9.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
Ответ 2
не знаю почему, но вы должны попробовать, если это работает:
добавьте следующий код в web.config
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Microsoft.ReportViewer.WebForms" publicKeyToken="b03f5f7f11d50a3a" />
<bindingRedirect oldVersion="9.0.0.0" newVersion="10.0.0.0"/>
</dependentAssembly>
</assemblyBinding>
до
</configuration>
это сработало для меня