新しいサーバーに移動した後のレポートビューアーの問題
-
10-07-2019 - |
質問
サイトをWindows 2003、IIS6 SQL 2005サーバーからWindows 2008、IIS7、およびSQL 2008を備えた新しいサーバーに移動しました。
レポートビューアーに問題があります。 再配布可能なReport Viewerをインストールしました(2005、2005sp、2008、2008spを試しました) IISのハンドラを
にマッピングしましたReserved.ReportViewerWebControl.axd
入力する
Microsoft.Reporting.WebForms.HttpHandler、 Microsoft.ReportViewer.WebForms、 バージョン= 8.0.0.0、文化=中立、 PublicKeyToken = b03f5f7f11d50a3a
ただし、Webサイトでレポートを実行すると、次のエラーメッセージが表示されます。
アセンブリ「Microsoft.ReportViewer.WebForms、Version = 9.0.0.0、Culture = neutral、PublicKeyToken = b03f5f7f11d50a3a」からタイプ「Microsoft.Reporting.Microsoft.Reporting.WebForms.HttpHandler」をロードできませんでした。 説明:現在のWebリクエストの実行中に未処理の例外が発生しました。エラーの詳細とコード内の原因については、スタックトレースを確認してください。
例外の詳細:System.TypeLoadException:アセンブリ「Microsoft.ReportViewer.WebForms、Version = 9.0.0.0、Culture = neutral、PublicKeyToken = b03f5f7f11d50a3a」からタイプ「Microsoft.Reporting.Microsoft.Reporting.WebForms.HttpHandler」をロードできませんでした。
困惑しています。アイデアはありますか?
解決
8.0.0.0ではなくバージョン9.0.0.0にマッピングする必要があると思います
他のヒント
この設定がライブサーバーweb.configにあることを確認する必要があります
<compilation debug="true">
<assemblies>
</assemblies>
<buildProviders>
<add extension=".rdlc" type="Microsoft.Reporting.RdlBuildProvider, Microsoft.ReportViewer.Common, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</buildProviders>
<httpHandlers>
<add path="Reserved.ReportViewerWebControl.axd" verb="*" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" validate="false"/>
</httpHandlers>
IIS 7で実行している場合、ハンドラーに実行権限もあることを確認する価値があります。
鉱山を設定した後、ハンドラーが500の例外をスローしていることがわかりました。詳しく見ると、ハンドラーをリストに追加するだけでは不十分なようです。また、デフォルトでは実行が許可されていないため、権限を編集する必要があります。ボックスをチェックして実行させ、問題をすぐに解決しました。
他の提案が機能しない場合は、これを試す価値があるかもしれません-
<!> quot; IIS 7への移行には多くの問題がありました。 かなりのデバッグが必要でした。
最初の問題の解決:IIS 7アプリケーションのディレクトリ権限 プールID(デフォルトはNetwork Service)を追加する必要がありました IISアプリケーションプールが物理パスにアクセスできること ウェブサイトディレクトリの。
SECOND ISSUSE RESOLVED:ASP.Netに追加する必要がある行 アプリケーションweb.configファイル。後の子
追加:
解決された3番目の問題インストール時のデフォルトのアプリプールには.Netがあります デフォルトのフレームワーク2.0。これは大丈夫だった。既定のアプリプール設定 マネージドパイプラインモードの場合、「統合」から変更する必要があります (デフォルト)を「クラシック」にすると、これはアプリを実行し続けるための簡単な修正でした IIS 6にあったように。<!> quot;
マネージパイプラインモードを<!> quot; classic <!> quotに変更します。私のためにそれを修正しました。
この問題はしばらくの間解決されたようですが、検索しているユーザーの場合:
エラーで参照されているアセンブリに注意してください:
Microsoft.Reporting.Microsoft.Reporting.WebForms.HttpHandler
It should は単にMicrosoft.Reporting.WebForms.HttpHandler
である-web.configで両者がどうなってしまったのかは疑わしいが、IISでハンドラーを手動で作成し、IISに書き込むことと関係があるかもしれないアプリのweb.configへのハンドラーキー(もちろん、今では再現できません)。
IIS7に移行する場合、ハンドラーマッピングは以前のバージョンのように<system.webServer> <handlers>
ではなく<system.web> <httpHandlers>
に存在することに注意してください。 IIS7は古いhttpHandlers
セクションを無視しますが、設定を習慣からチェックし、設定が有効になっていないことに不満を感じるかもしれません。
プロジェクトのBinフォルダにCommanClassLibrary.dllを含め、aspxページと設定ファイルでReportViewer Web Controlのバージョンが同じであることを確認してください