0

ReportExecutionService オブジェクトを使用して、Render メソッドを使用してレポート サービス レポートを呼び出しています。Windows サービス コールから Web サービスを複数回呼び出して、複数のパラメータを含む複数のレポートをロードしています。

すべてが正常に機能していますが、次のことを知りたいです。

  1. プロパティから取得した SessionId を再利用して処理のパフォーマンスを向上させる方法はありrs.ExecutionHeaderValue.ExecutionIDますか?
  2. 最初の質問に対する答えが「はい」の場合: 呼び出しで SessionId を再利用するにはどうすればよいですか?
4

1 に答える 1

0

興味深い質問です。複数のプラットフォームと環境にわたるSSRSサーバーとの戦いで私が見つけた2つのポイントを提供します。

  1. SSRSの速度の最大の問題は、2008年と2012年に私が信じている12時間ごとにサービス自体がリサイクルされることにあるようです。それ以前はわかりません。私が行ったことは、http://(servername)/ ReportServerのルートに移動する「キープアライブ」サービス呼び出しを作成し、それをpingしてキープアライブを維持することです。その時間内に活動がなかった場合、それは遅くなる傾向があります。

  2. 冒険好きで.NETを知っている場合は、1つまたは複数のレポートを複数回生成できるかどうかを確認してみてください。基本的に、C#を使用するプロセスでは、SSRSのWebサービスをコードで直接呼び出し(これを行うためにプロキシクラスを作成します)、レポートをサービス、パラメーターにロードしてからレンダリングします。そのインスタンスを注入すると、複数回ロードできる場合があります。私はそれを試したことがありませんが、プロキシから直接レポートをレンダリングすることは、私が試したいくつかの例では驚くほど高速です。

このメソッドにはセッションIDがありますが、セッションがレポートのレンダリングまたはサーバーの呼び出しに保持されているかどうかはわかりません。レポートのレンダリングを推測しますが、これをテストしたことはありません。通常、作成用のメソッドを一度に1つずつ呼び出し、仕様に対して十分に高速であるためです。

興味がある場合は、#2へのリンクを次に示します。ReportService2010.asmxを使用してSharePointからSSRSレポートをプログラムでエクスポートする

于 2013-03-20T22:02:00.043 に答える