1

SQL Server 2012 の SOAP データ ソースで SSRS を使用しています。サービスがタイムアウトすると、レポート ユーザーのブラウザーに次のテキストが表示されます...

  • レポートの処理中にエラーが発生しました。(rsProcessingAborted)
    - 共有データ セット 'XXXLookup' の実行に失敗しました。(rsDataSetExecutionError)
    • データセット 'XXXLookup' のクエリの実行に失敗しました。(rsErrorExecutingCommand)
      • 指定された URL に対する Web リクエストの実行に失敗しました。(rsXmlDataProviderError)
        ® 操作がタイムアウトしました

SQL Server 2012 Reporting Services でカスタム エラー ハンドラーを構成して、ユーザー フレンドリなメッセージを提供する方法はありますか? (同様の質問を検索して見つけましたが、通常、答えは「いいえ」です。2012 年より前のバージョンでは、SSRS によって rs エラーをトラップできません。)

4

1 に答える 1

0

SSRS 2012には、SSRSイベントに「フックイン」するセクションが構成ファイルに含まれていますが、MSFTごとに、このセクションを変更しないでください(MSDNドキュメントから)。

「イベント処理デフォルトのイベントハンドラーを指定します。このセクションは変更しないでください。このセクションは拡張できません。」

それで...それはあなたをどこに残しますか?もちろん、ここで説明するように、SSRSのweb.configのセクションを変更することもできます。もちろん、これではデフォルトの(わかりにくい)エラーページをもう少しわかりやすいものに置き換えることしかできませんが、この新しいカスタムエラーページで失敗の理由を動的に入力する方法は明確ではありません。他のお客様も同じ問題を抱えていますが、MSFTの誰も答えていないようです。

それで、私はここで何をしますか?これは、この問題が発生しているレポートの量によって異なります。考えられるすべてのレポートのごく一部である場合は、カスタム拡張機能を介してレポート自体にロジックを配置し、目的の期間にデータが返されない場合にレポートのテキストボックスに入力することができます。

また、これらのレポートのレンダリングが非常に遅いのはなぜですか?ユーザーに明らかな質問をします。たとえば、「大量のデータが返されますか?各レポートでその量のデータが必要/使用されますか?」、「大量のデータが返される場合は、次のようになりますか?」 (ソースデータベースによって)事前に集約されて表示されますか?」また、インデックス作成、より最適なクエリ構文などを介して、データソースでクエリを最適化することを検討します...

もう1つの考慮事項は、レポートがタイムアウトするのはいつかということです。特定の時間帯はありますか?その時、ネットワークに混雑はありますか?これらの同じ方針に沿って、ユーザーは少しの待ち時間を受け入れることができるので、スケジュールされたスナップショットを介してレポートをレンダリングできます。これにより、取得も高速化される可能性があります。

于 2012-08-17T16:06:45.120 に答える