The Report Viewer Web Control HTTP Handler has not been registered in the application's
web.config file. Add <add verb="*" path="Reserved.ReportViewerWebControl.axd" type =
"Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=9.0.0.0,
Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> to the system.web/httpHandlers section of the web.config file
このエラーは近づいています。私はすでにhttpハンドラでこの行を言及していますが、まだこのエラーが発生しています
<add path="Reserved.ReportViewerWebControl.axd" verb="*" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=8.0.0.0, Culture=neutral, PublicKeyToken=0000000000000000" validate="false" />
私のhtmlページのマークアップは次のとおりです
<%@ Register Assembly="Microsoft.ReportViewer.WebForms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
Namespace="Microsoft.Reporting.WebForms" TagPrefix="rsweb" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<asp:Button ID="btnsubmit" runat="server" OnClick="GenerateReportButton_Click" />
<rsweb:ReportViewer ID="ReportViewer1" runat="server">
</rsweb:ReportViewer>
</asp:Content>
Web構成アセンブリセクションは次のとおりです。
<assemblies>
<add Assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add Assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add Assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add Assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add Assembly="System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add Assembly="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<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"/>
</assemblies>
登録されているハンドラーのweb.config
を確認できますか、ReportViewer
を確認できませんか。そのようになります
ハンドラー
<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>
ReportViewer
のweb.config
のAssemblyセクションも確認してください。以下のようになります。
<assemblies>
<add Assembly="Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
<add Assembly="Microsoft.ReportViewer.Common, Version=10.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
アプリプールをIntegratedからClassicに変更したときにも、問題はなくなりました。
過去2日間、同じ問題が発生しました。これは実際には元の質問に対する答えではなく、同じ問題を抱えている人のための追加情報です。
私が問題を抱えていたアプリケーションは2005年に開発され、現在も開発中です。
そのため、VS 2005からVS 2008に、VS 2010に、最近ではVS 2013に移植されました。これは、エラーが発生したときのようです。 .NETフレームワークの間のどこかで.NET 3.5から.NET 4に切り替わりました。
.NET 4では、レポートビューアー* .dllがシステムライブラリとして提供されると思います(検証しませんでした)。とにかく、これは私のGACを私に示しました:
最初のバージョンであるバージョン8のみが自分で手動でインストールされています(Reporting Viewer 2005再配布可能バイナリを使用)。
VS 2013では、Resharperはバージョン11を考えており、web.configのこれらの行を自動的に変更します
<httpHandlers>
<!-- this is the correct one (if using Report Viewer 2005 / 8.0.0.0 -->
<add path="Reserved.ReportViewerWebControl.axd" verb="*" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" validate="false"/>
</httpHandlers>
<httpHandlers>
<!-- this is the wrong one inserted during the update (or maybe Resharper) -->
<add path="Reserved.ReportViewerWebControl.axd" verb="*" type="System.ServiceModel.Activation.HttpHandler, System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/>
</httpHandlers>
要するに、少なくとも私の場合、このエラーは、Visual Studioで使用されるライブラリとランタイムを使用するライブラリとのバージョンの競合を示しているようです。 Microsoftから与えられたエラーは、少し誤解を招く可能性があります。
この問題は、SSRSデザイナでデータセットを更新せずにクエリが呼び出すストアドプロシージャのパラメータを変更した後に発生したため、これを試すことができます。
既存の回答についてコメントするのに十分な担当者がいませんが、アプリプールを統合からクラシックに変更する必要がある理由は、 このMSDNエントリ
統合アプリプールでは、ハンドラー部分のみが必要です。クラシックアプリプールでは、ハンドラーとhttpHandlerの両方が必要です。
IIS 7以降
<system.webServer>
<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>
SSRS 2016にアップグレードしたときに、レポートビューアーWebコントロールからまったく同じエラーが発生していました。しかし、SSRS Webポータルにアクセスできませんでした-503エラーが発生しました。 Microsoft.com/en-gb/help/3171040 http-503-service-unavailable-error-when-you-open-the-ssrs-web-portal-after-you-upgrade-to-ssrs-2016
SQL Server 2016 Service Pack 1をインストールすると、すべてが機能しました。
データベースからデータを取得するためにWCFサービスを使用している場合、web.configファイルにHTTPハンドラーを追加した場合でも、この問題に直面する可能性があります。
この場合、サービスのエンドポイント、動作、およびバインディングをweb.configに追加して、機能させる必要があります。
私の場合、次の行で問題を解決しました:
<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=14.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
</handlers>
</system.webServer>
この行を追加したばかりのアプリプールでは何も変更していません。
<Add name = "Reserved-ReportViewerWebControl-axd" path = "Reserved.ReportViewerWebControl.axd" verb = "*" type = "Microsoft.Reporting.WebForms.HttpHandler" resourceType = "Unspecified" />