0

ASP.Net グラフ作成ツール (バージョン 3.5) を使用しており、グラフ イメージを SQL Server セッションに保存したいと考えています。web.config のセクションは次のとおりです。

<add key="ChartImageHandler" value="storage=session;timeout=20;" />

そして、web.config のセッション設定は次のようになります。

<sessionState mode="SQLServer" sqlConnectionString="Data Source={sql server name}; Integrated Security=SSPI;" cookieless="false" timeout="30"/>

グラフ イメージは、ページが初めて読み込まれたときに正常に機能します。ただし、その後は毎回ロードに失敗します。赤い X/image not found グラフィックが表示されます。画像がセッションに正しく保存されていないように見えますが、「タイムアウト」値を変更しても効果がありません。

ファイル ストレージ オプションのバージョンは機能します。

<add key="ChartImageHandler" value="Storage=file;Timeout=800;Dir=C:\Directory\TempChartFiles;"/>

ただし、代わりに SQL Server セッション オプションを使用することをお勧めします。SQL Server セッション オプションを ASP.Net チャート ツールと連携させる方法はありますか?

4

1 に答える 1

0

まず、キーを設定している場所がわかりません。それはありますか、それともより具体的な場所に設定していますか。次に、コードをレンダリングする方法を設定します。

私が見たところ、魔法の ASP.NET 妖精が値を保存し、セッションから自動的にプルすることを期待していますが、これはセッションの仕組みではありません。

さらに、ビジネス上の問題が何であるかわからないため、セッションが保存するのに最適な場所であるかどうかさえわかりません。ASP.NET には、ニーズに応じて、よりユーザー固有またはアプリケーション固有の優れたキャッシュ オプションのセットがあります。また、オートマジックではありませんが、多くの場合、Session を使用して物を保存するよりもうまく機能します。

ここでの問題は、私が見ているように、SQL Server の問題ではなく、セッションの保存を実際に処理するためのコードが不足していることです。この場合、特にグラフィックスが大きくなってしまう場合、SQL Server は不適切なセッション オプションである可能性があることを述べておきます。他のキャッシュ ソリューションよりもスケーラビリティが大幅に低下する可能性があります。言い換えれば、セッションがどのような場合でも良いオプションであるとは確信していませんが、SQL Server ではさらに悪い可能性があります。

セッション状態に SQL Server を使用する主な理由は、次のいずれかです。

  1. 分散ソリューションが必要だが、セッション サーバーを使用できない
  2. ワーカー プロセスの障害などから回復し、セッションを維持できる必要がある

より多くのコードがあり、より具体的なビジネス上の理由をフォローアップできる場合は、問題の解決方法についてより詳細な回答が得られる可能性があります。

于 2011-06-07T15:21:26.257 に答える