10

我正在編寫一個ASP.NET應用程序,它使用SSRS安裝程序使用SQL Server 2005。我想使用ReportViewer控件,但在使用ReportViewer 10時出現錯誤,因爲它需要SSRS 2008.在VS 2010中使用ReportViewer 9控件

如何在我的應用程序中使用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: The type 'Microsoft.Reporting.WebForms.ReportViewer' exists in both 'c:\WINDOWS\assembly\GAC_MSIL\Microsoft.ReportViewer.WebForms\10.0.0.0__b03f5f7f11d50a3a\Microsoft.ReportViewer.WebForms.dll' and 'c:\WINDOWS\assembly\GAC_MSIL\Microsoft.ReportViewer.WebForms\9.0.0.0__b03f5f7f11d50a3a\Microsoft.ReportViewer.WebForms.dll'

我錯過了什麼!?

更新: 當試圖使用的ReportViewer 10我得到以下錯誤:

"Remote report processing requires Microsoft SQL Server 2008 Reporting Services or later."

回答

13

想通了,忘了改在web.config文件中引用3:

內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" /> 
+1

我發現你還需要運行你的經典模式(應用程序池設置)中的應用程序可以使ReportViewer 9.0正常工作。 – 2011-03-17 02:41:18

+0

感謝這工作完美.. – 2011-05-10 03:23:08

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> 

它的工作對我來說

相關問題