2012-08-30 24 views
7

Visual Studio 2010を使用していて、SQL 2012で新しいレポートシステムをテストすることを希望する「Microsoft Report Viewer 2012 Runtime」をインストールしました。その後、「Microsoft.ReportViewer」への参照をクリアしました。 WebForms "をWeb.configから削除し、ツールボックスからReportViewerコントロールを削除し、新しいバージョン11のReportViewerを追加しました。ReportViewer 11(2012)Visual Studio 2010

私は、テストページに新しいコントロールを追加し、1のためにこれはテストページに登録追加:

<%@ Register Assembly="Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" Namespace="Microsoft.Reporting.WebForms" TagPrefix="rsweb" %> 

、それがWeb.configファイルにこれらのエントリを追加します。

<buildProviders> 
<add extension=".rdlc" type="Microsoft.Reporting.RdlBuildProvider, Microsoft.ReportViewer.WebForms, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 
</buildProviders> 

<httpHandlers> 
<add path="Reserved.ReportViewerWebControl.axd" verb="*" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" validate="false" /> 
</httpHandlers> 

<handlers> 
<add name="ReportViewerWebControlHandler" preCondition="integratedMode" verb="*" path="Reserved.ReportViewerWebControl.axd" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 
</handlers> 

ツールボックスのコントロールはバージョン11の追加ですが、システムはバージョン10のエディションを参照しようとし続けます。またコンパイルしようとすると、エラーが表示されます。

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\11.0.0.0__89845dcd8080cc91\Microsoft.ReportViewer.WebForms.DLL' 
+0

この修正の問題を動作します。 Webアプリケーション用のAzure VMを使用していましたが、DBサーバーは別の別のVMであったため、Report Viewerのランタイムをインストールすると、SQL Feature Packがインストールされている必要がありました。私はMicrosoft.ReportViewer.Commonフォルダを別のサーバからコピーしていましたが、それはうまく機能していました。 http://ata2931977.blogspot.com/2015/06/running-rdlc-reports-on-azure.html –

答えて

16

私はまったく同じ問題を抱えていたと思います。もしそうなら、私の解決策は、ReportViewerを参照するweb.config内のすべてのエントリを削除してから、Referencesで同じことを行い、プロジェクトをビルドしてから、ページのレポートビューアを再追加することでした。

web.configは、新しいバージョンの新しいハンドラとアセンブリで更新されます。

+1

これは私の問題でした同じように。私のweb.configから偽のエントリを削除する必要があります。重要なステップは、正しい参照を再追加する前に再構築することでした。 – CobaltBlue

+0

これこれこれこれこれ、なぜあなたは答えではありません! – peroija

+0

@Telmoこれは私にとってはうまくいかなかった。バージョン10への参照を削除し、web.configからバージョン10のエントリを削除しましたが、この段階でReportViewerライブラリが存在しないため、プロジェクトをビルドできません。バージョン11をnuget経由で追加したところ、package.configとv11のリファレンスにエントリが追加されましたが、web.configにはエントリが追加されませんでした。そして、私は今ランタイムエラーを取得します。 – nickornotto

0

私は同じエラーを持っていたし、次の操作を行って、それを解決:aspxページ(HTMLコード)で

  • 、私が使用したアセンブリのバージョンに対応するように@Registerバージョン値を更新PublicKeyToken値をアセンブリの正しい値で更新しました。
0

ウェブ設定では、v 10と11の両方のdllを指定したことを意味します。どちらか一方を取り外してください。

0

私はpackage.configから次のエントリを削除して、それは私のために

<package id="MicrosoftReportViewerWebForms_v10" version="1.0.0" targetFramework="net45" /> 
関連する問題