Asp.netのレポートビューアーを使用して、サイトをアップロードしようとしています。ただし、レポートビューアーを含むページが読み込まれると、次のエラーが表示されます。
ファイルまたはアセンブリ「Microsoft.ReportViewer.WebForms、Version = 11.0.0.0、Culture = neutral、PublicKeyToken = 89845dcd8080cc91」またはその依存関係の1つをロードできませんでした。検出されたアセンブリのマニフェスト定義は、アセンブリ参照と一致しません。 (HRESULTからの例外:0x80131040)
ASP.NET Webサイトを展開するのはこれが初めてなので、問題が何なのかわかりません。
このリンクから、必要な更新プログラムをインストールしなかったという手がかりが得られました(問題のあるバージョンnr、v11.0.0.0)
ReportViewer 2012更新する 'Gotcha'に注意する
更新プログラムをインストールしました SQLServer2008R2SP2
ReportViewer.msi をダウンロードしました。これはインストールする必要がありました Microsoft®SQLServer®2012のMicrosoft®システムCLRタイプ (インストーラーのページの下半分を見てください)
GACでWebForms v11.0.0.0が利用可能になりました(C:\Windows\Assembly\Microsoft.ReportViewer.WebForms
v11.0.0.0
およびMicrosoft.ReportViewer.Common
v11.0.0.0
)
Microsoft.ReportViewer.2012.Runtime nuget package をインストールしましたが、ReportViewer.msiまたはSQL Feature Pack 12をインストールせずに問題を解決しました
Microsoft.ReportViewer.WebFormsとMicrosoft.ReportViewer.Commonの両方を参照し、CopyLocalプロパティをtrueに設定する必要があります。これにより、dllがbinディレクトリにコピーされます(両方が必要です)。
両方をコピーして問題を解決しました
C:\Program Files (x86)\Microsoft Visual Studio 12.0\ReportViewer
C:\Program Files\Microsoft Office\Office15\ADDINS\PowerPivot Excel Add-in
binフォルダー(ウェブサイト)に。
もちろんweb.config
には以下が必要です:
<httpHandlers>
<add path="Reserved.ReportViewerWebControl.axd" verb="*" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" validate="false" />
</httpHandlers>
<assemblies>
<add Assembly="Microsoft.ReportViewer.WebForms, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845DCD8080CC91" />
<add Assembly="Microsoft.ReportViewer.Common, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845DCD8080CC91" />
</assemblies>
<buildProviders>
<add extension=".rdlc" type="Microsoft.Reporting.RdlBuildProvider, Microsoft.ReportViewer.WebForms, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
</buildProviders>
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<handlers>
<add name="ReportViewerWebControlHandler" preCondition="integratedMode" verb="*" path="Reserved.ReportViewerWebControl.axd" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
</handlers>
</system.webServer>
そして、それだけです。私にとっては大丈夫です。
お役に立てれば。
別のパッケージでも同じエラーが発生しました。私の問題は、依存プロジェクトが異なるバージョンを参照していることでした。私はそれらを同じバージョンに変更し、すべてが良かった。
バージョン10.0.0.0、つまり「Microsoft.ReportViewer.WebForms、Version = 10.0.0.0、Culture = neutral、PublicKeyToken = b03f5f7f11d50a3a」から移行するときにこのエラーが発生しました/>
バージョン11.0.0.0、つまり.
「Microsoft.ReportViewer.WebForms、バージョン= 11.0.0.0、Culture = neutral、PublicKeyToken = 89845dcd8080cc91」
上記のように、バージョンが変更されただけでなく、公開トークンキーも変更されたことを理解するまで、しばらく時間がかかりました。
同じエラーが発生しました。私のWebアプリは、レポートビューアーバージョン10.0に向けられていましたが、11.0がインストールされている場合、10.0に10.0 .dllのリダイレクトが追加されます。これは、10.0 .dllのリダイレクトを修正しないため、11.0をアンインストールしたときに問題になりました。私の場合の修正は、単に10.0をアンインストールして再インストールすることでした。
ファイルMicrosoft.ReportViewer.WebForms.dllをWebアプリケーションのbinディレクトリにアップロードします。
このdllファイルは、ローカルWebアプリケーションのbinディレクトリにあります。
ReportViewerの更新が機能するはずです。以下の手順を使用して、更新されたReportViewerをNuget Package Managerコンソールからインストールします。
インストールパッケージMicrosoft.ReportingServices.ReportViewerControl.WebForms
Aspxファイルにアセンブリ参照を追加するだけです。
ここで、15.0.0.は、VSにインストールされたReportViewerControl.WebFormsのバージョン番号です。ソリューションのリファレンスを確認して、バージョン番号を確認してください。 PublicTokensを追加する必要はありません(複数のインストールが存在する場合、再度トラブルが発生する可能性があります)。
サーバーからのデータを使用してサーバーでレポートビューアーを実行するには
A)プロジェクトプロパティに移動---->参照の選択------>参照の追加
1) Import(Microsoft.ReportViewer.Common.dll)----->(パス "C:\ Program Files(x86)\ Microsoft Visual Studio 10.0\ReportViewer")
2)インポート(Microsoft.ReportViewer.ProcessingObjectModel.dll)----->(パス "C:\ Windows\Assembly\GAC_MSIL\Microsoft.ReportViewer.ProcessingObjectModel")
) Import(Microsoft.ReportViewer.WebForms.dll)----->(パス "C:\ Program Files(x86)\ Microsoft Visual Studio 10.0\ReportViewer")
B)上記の3つのDLLでは、「ローカルコピー」をTrueに設定して、展開パッケージの構築中に「ビン」フォルダーにコピーされるようにします。
C)ソリューションを公開する
D)その後、「File Zilla」ソフトウェアを使用して、「Bin」フォルダーとともにすべてのファイルを「Web Server」にアップロードします。
E)これにより、サーバーにDLLがインストールされるため、クライアントに「レポートビューアー.dll」は必要ありません。
これは私のために働いた。
私の解決策は次のとおりです。
これが役立つことを願っています。
古いwebformsアプリでこのエラーが発生しました。マークアップに問題の原因となっている行があったことがわかりました。私はそれを削除し、エラーは消えました。
<%@ Register Assembly="Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" namespace="Microsoft.Reporting.WebForms" tagprefix="rsweb" %>
DevExpressの試用版の有効期限が切れていました。もう一度更新してください。