次の方法で共有


イメージ ファイルの管理 (グラフ コントロール)

RenderType プロパティを ImageTag に設定すると、表示されたグラフ イメージはメモリ内またはディスク上のファイルとして保存されます (詳細については、「グラフ イメージの表示」を参照してください)。グラフ コントロールでイメージ ファイルを管理する方法を指定できます。指定するには、ImageStorageMode プロパティを使用します。

ImageStorageMode プロパティでは、グラフ HTTP ハンドラーを使用してイメージ ファイルを管理するか、手動で管理できます。

グラフ HTTP ハンドラーの使用

既定では、ImageStorageMode プロパティは UseHttpHandler に設定されます。この設定では、表示されたグラフ イメージの管理に、Web.config ファイルに登録されている ChartHttpHandler が使用されます。

次の場合にグラフ HTTP ハンドラーを利用できます。

  • サーバー クラスターまたは複数プロセス サイトで、ファイル上書きの競合を防ぎます。

  • 他のユーザーが表示しているグラフ イメージをダウンロードしないように、表示されたグラフ イメージのセキュリティを保護します。

  • メモリや他のストレージ オプション (Microsoft SQL Server など) にイメージ ファイルを保存することで、ディスク操作を減らします。

使用法

ツールボックスのグラフ コントロールを ASP.NET ページのデザイン サーフェイスにドラッグすると、Web.config ファイルに "ChartImageHandler" として自動的に ChartHttpHandler が登録されます。<appSettings> 要素で ChartImageHandler の動作を設定できます。適用できるコード セクションを次に示します。設定は自動的に生成されます。

<appSettings>

<add key="ChartImageHandler" value="storage=file;timeout=20;dir=c:\TempImageFiles\;" />

</appSettings>

value 属性のパラメーターを使用して、グラフ HTTP ハンドラーを構成します。各パラメーターの詳細については、次の表を参照してください。

パラメーター

説明

storage

ストレージ モード。使用可能なオプションは次の 3 つです。

  • file: 表示されたグラフ イメージを一時ファイルとして保存します。また、url パラメーターまたは dir パラメーターで保存場所を指定する必要があります。サーバー クラスターまたは複数プロセス サイトの場合、dir パラメーターを指定する必要があります。

  • memory: 表示されたグラフ イメージを実行中のプロセスのメモリ空間に保存します。サーバー クラスターまたは複数プロセス サイトの場合、このオプションは使用しないでください。

  • session: 表示されたグラフ イメージをセッション変数に保存します。

url

イメージ保存場所の相対 URL。dir パラメーターを指定した場合、url の代わりに使用されます。

既定値は、"~/" です。

dir

イメージ保存場所の絶対ディレクトリ パス。ローカル パスとネットワーク パスのいずれかを指定できます。サーバー クラスター環境の場合、ネットワーク パスを使用して共有の場所に一時ファイルを保存します。誤って一時ファイルが上書きされないように、各一時ファイルには一意のマシン ID が割り当てられます。

timeout

表示されたグラフ イメージのタイムアウト時間 (秒)。この時間を経過したイメージは、新しいイメージで置き換えられる可能性があります。

既定値は 30 です。

handler

カスタムの IChartStorageHandler 実装。この値は、完全修飾アセンブリ名の形式で設定する必要があります。たとえば、MyNamespace.MyClass.MyHandler のようにします。

privateImages

プライバシーの保護。true に設定すると、次に示す ID の種類の一部が適用された場合に、生成されたイメージをダウンロードできるのは所有者のみになります。

  • ユーザーは認証されています。

  • AnonymousID は有効です。

  • SessionID を使用できます。

既定値は true です。

deleteAfterServicing

クライアントからのダウンロードを正常終了した後に、イメージを削除するかどうか。

既定値は true です。

webDevServerUseConfigSettings

Visual Studio 開発サーバーを使用して完全な信頼レベルでアプリケーションを実行する場合、表示されたグラフ イメージをメモリ内に保存するかどうか。

既定値は true です。これは、Visual Studio から ASP.NET アプリケーションを実行するときに、Web.config ファイルの設定は影響がないことを意味します。

信頼レベルが異なる場合の構成設定

次の一覧は、信頼レベルと、信頼レベルが Web.config ファイルの構成設定に与える影響です。

  • 完全信頼: すべての構成のバリエーションが適用されます。

  • 高い信頼: ASP.NET 開発サーバーを検出できません。そのため、webDevServerUseConfigSettings は影響がありません。

  • 中程度の信頼: 高い信頼と同じです。

  • 低度の信頼: ファイル アクセスが禁止されている点を除き、高い信頼と同じです。storage パラメーターは、session または memory に設定する必要があります。

  • 最低の信頼: グラフ HTTP ハンドラーの検出に失敗する点を除き、低度の信頼と同じです。つまり、Web.config ファイルで ChartImageHandler キーを指定する必要があります。

イメージの手動管理

表示されたグラフ イメージを手動で管理するには、ImageStorageMode プロパティを UseImageLocation に設定し、ImageLocation プロパティを絶対パスまたは相対パスに設定します。

注意

このモードの場合、各グラフ コントロールは 1 つのイメージ保存場所を独立して管理します。

ImageLocation プロパティには、パスと特定のキーワードを指定できます。たとえば、"~/Temp/ChartPic_#SEQ(300,5)" などです。この文字列は次の 3 つの要素で構成されます。

  • 絶対ディレクトリ パスまたは相対ディレクトリ パス。たとえば、"~/Temp/" などです。

  • ファイル名、またはすべてのイメージ ファイル名の先頭の文字列。たとえば、"ChartPicture_" などです。

  • キーワード。たとえば、"#SEQ(300, 5)" と指定します。

キーワードなしの ImageLocation

キーワードなしでイメージの場所を指定すると、グラフ コントロールではすべてのイメージ表示に 1 つのファイルが使用されます。結果のファイル パスは、指定した文字列を先頭に含み、ImageType プロパティで指定したファイル拡張子を含むディレクトリになります。たとえば、"~/Temp/ChartPicture_.png" などです。

グラフのデータまたは外観がよく変わる場合、イメージ ファイルがクライアントに送信される前に上書きされ、正しくないイメージをクライアントが受信する可能性があります。この問題を回避するには、キーワードのいずれかを使用します。

キーワードありの ImageLocation

ImageLocation プロパティには、3 つのキーワードを挿入できます。

キーワード

説明

#UID

表示されるグラフ イメージごとに一意の ID を生成します。たとえば、"~/Temp/ChartPicture#UID" などです。

このキーワードを使用すると、サーバーは、各ページ要求に対して正しい表示イメージで応答します。古いファイルは手動で削除する必要があります。削除しないと、無制限にファイル数が増えます。

#SEQ(maxFiles,minutes)

ファイルのシーケンス番号を生成します。最大値は maxFiles で定義した数です。最大値に達すると、シーケンスを始めから開始し、シーケンスの最初のファイルを置き換えます。たとえば、"Picture_#SEQ(300,5)" と指定すると (ImageTypePng に設定されている前提の場合)、Picture_000001.jpg、Picture_000002.jpg、... などのファイル名が生成されます。

minutes パラメーターで、シーケンスの各ファイルのタイムアウトを指定します。ただし、これは指定した期間にファイル名が有効であることを保証するパラメーターではありません。タイムアウト期間を超える前にファイルを再利用する場合、警告メッセージをアプリケーション イベント ログに挿入します。イメージ ファイルが誤って上書きされないようにするには、maxFile パラメーターを適度に大きな数字に設定する必要があります。

#NOGUIDPARAM

イメージ ファイルの URL から GUID を削除します。たとえば、"Picture_#SEQ(300,5)#NOGUIDPARAM" などです。

既定で、グラフ コントロールによってイメージ URL に GUID 文字列が追加されます。

イメージの種類と比較

グラフ イメージを一時ファイルに保存するときにイメージの種類を指定するには、グラフ コントロールの ImageType プロパティを使用します。このプロパティを Jpeg に設定する場合、グラフ コントロールの Compression プロパティで JPEG 圧縮を指定することもできます。

関連項目

その他の技術情報

グラフ イメージの表示

グラフ コントロールの使用