Webページのソースを表示をチェックしたときに次のエラーメッセージが見つかりましたが、Webページは正常に機能します。テストリードは、アサーションテストの実行中にエラーを検出しました。
レポートビューアの構成エラー:
レポートビューアのWebコントロールHTTPハンドラーがアプリケーションのweb.configファイルに登録されていません。追加
<add verb=" * " path="Reserved.ReportViewerWebControl.axd" type="Microsoft.Reporting.WebForms.HttpHandler,Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" />
web.configファイルのsystem.web/httpHandlersセクションに追加するか、追加します
<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" />
インターネットインフォメーションサービス7以降のsystem.webServer/handlersセクションへ
このエラーメッセージがビューソースに表示されるのはなぜですか。
注:このエラーメッセージの周りにstyle = "display:none"のdivタグがあります
私はその理由を見つけようとしていますが、誰もがこのエラーメッセージをWebページにスローされるものとしてのみ議論しています。 web.configに提案された変更は、構成ファイルにすでに存在します。
以下が私の解決策でした:
<system.web>
<httpHandlers>
<add verb=" * " path="Reserved.ReportViewerWebControl.axd"
type="Microsoft.Reporting.WebForms.HttpHandler,
Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a" />
</httpHandlers>
</system.web>
<system.webServer>
<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>
</system.webServer>
ReportViewerコントロールを含み、ほぼ1年間問題なく本番環境に移行しているアプリをチェックインしたところ、HTMLコンテンツに同じコンテンツが見つかりました。
したがって、このdiv
が表示されないという事実を考えると(CSS属性display:none
)、エラーが実際に発生した場合に表示しやすくするためだけに表示されるエラーメッセージであると推測できます。エラーにクライアント側の問題が含まれている場合は、その方法で実装する方がはるかに簡単です。メッセージを表示するためにクライアント側のスクリプトで行う必要があるのは、スタイル属性を変更することだけです。エラーを追加するためにDOMを操作する必要はありません。メッセージであり、JavaScriptで適切な言語でローカライズされたエラーメッセージを取得する必要はありません(言語パックを介したReportViewerのローカリゼーションサポートを考えると、言語ごとにこのエラーメッセージの異なるバージョンがあります-ASP.NETでこれを処理するのははるかに簡単ですjavascriptのブラウザよりも他のすべてのローカライズされたコンテンツと並んで)。はい、私はここで心理学をしています! :)
安全のために、IIS6およびIIS7の構成を追加してください。
IIS6:
<system.web>
<httpHandlers>
<add verb=" * "
path="Reserved.ReportViewerWebControl.axd"
type="Microsoft.Reporting.WebForms.HttpHandler,
Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a" />
</httpHandlers>
</system.web>
IIS7:
<system.webServer>
<handlers>
<add verb=" * "
path="Reserved.ReportViewerWebControl.axd"
type="Microsoft.Reporting.WebForms.HttpHandler,
Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a" />
</handlers>
</system.webServer>
IIS 7の場合、web.configで次のコードを使用します
<system.webServer>
<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>
</system.webServer>
これは、レポートビューアコントロールの宣言がweb.configでどのように表示されるかを示しています。そこに似たようなものがあることを確認してください。持っていない場合は追加してください。コントロールのバージョンは同じではない可能性があります。
<configuration>
...
</system.web>
...
<httpHandlers>
...
<add verb="*" path="Reserved.ReportViewerWebControl.axd" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
...
</httpHandlers>
...
</system.web>
...
</configuration>
レポートビューアが表示されないという同じ問題にも直面していました。ブラウザから表示プロパティを設定した後、「レポートビューアの構成エラー」としてエラーが発生しました。
一部のパラメータについて、「string.empty」などの誤った値を送信していることがわかりました。値またはnullをパラメーターに送信するようにコードを変更しました。これで、レポートが正しく表示されます。正しいレポートパラメータ値をレポートに送信することで、問題を解決しました。適切な値またはnullを割り当てるためのパラメータを見逃さないでください。
次のコードは次のとおりです
<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>
IISバージョンに応じてweb.configファイルを変更した後、次のコード部分を追加してみてください。
if(!IsPostBack){
// Here codes about ReportViewer1
}
これを確認できます 同様の問題 。