[08056] Webガーデンを使用した場合、WebViewerにレポートが正しく表示されない場合がある
対象製品
ActiveReports for .NET 7.0J
詳細
WebViewerコントロールを使用した場合のレポートの生成、描画は以下のような動作になっています。
拡大表示
しかしながら、Webガーデン(複数のワーカープロセスが起動した状態)では、複数のプロセスにまたがってASP.NETキャッシュを管理することができません。
Webガーデン使用時は、1.と3.のリクエストが異なるワーカープロセスで処理される可能性があります。リクエストが異なるプロセスで処理された場合、上述の制限から、3.のリクエスト処理時に、1.でASP.NETキャッシュに格納されたレポートデータ(.ar7)を取得できない(レポートデータがキャッシュに存在しない)状態となり、レポートが正しく表示されない現象が発生します。
【Webガーデン構成時のWebViewerコントロールの動作概念図】
拡大表示
Webガーデンのプロセス管理については、以下のマイクロソフト社のサイトを参照してください。
ASP.NET ワーカー プロセス
- クライアントからリクエストがあるとサーバー側ではレポートを作成し、それをレポートのデータ(拡張子「.ar7」のキャッシュアイテム)としてASP.NETワーカープロセス内のASP.NETキャッシュに格納します。
- サーバー上で、レポートデータを表示するためのWebViewerコントロールを配置したHTMLを生成しクライアントに返します。
- クライアントのブラウザではHTMLが取り込まれると、レポートデータ(.ar7)を呼び出すために、再度サーバーにリクエストを発行します。
拡大表示
しかしながら、Webガーデン(複数のワーカープロセスが起動した状態)では、複数のプロセスにまたがってASP.NETキャッシュを管理することができません。
Webガーデン使用時は、1.と3.のリクエストが異なるワーカープロセスで処理される可能性があります。リクエストが異なるプロセスで処理された場合、上述の制限から、3.のリクエスト処理時に、1.でASP.NETキャッシュに格納されたレポートデータ(.ar7)を取得できない(レポートデータがキャッシュに存在しない)状態となり、レポートが正しく表示されない現象が発生します。
【Webガーデン構成時のWebViewerコントロールの動作概念図】
拡大表示
Webガーデンのプロセス管理については、以下のマイクロソフト社のサイトを参照してください。
ASP.NET ワーカー プロセス