2012-02-03 15 views
0

私はMSチャートを使って基本的な円グラフと折れ線グラフを作成しました。私は.NETフレームワーク4.0で開発していますので、私のコンピュータにチャートを作成するのに何もインストールしませんでした。MSチャートはWindowsサーバー2008で動作しません

ローカルホスト上でチャートを実行すると、チャートが正常に動作していますが、Windowsサーバにコードをデプロイしてもそこでは動作していません。

エラーが発生していないか、そうでない場合は、エラーに基づいていくつかの調査を行ったと思います。サーバー上の唯一の違いは、wwwrootディレクトリがD:ドライブにあり、.netフレームワークがC:ドライブにインストールされていることです。

また、System.web.Datavisualization.dllはCドライブに存在します。以下は、一般的にチャートを保存するディレクトリを設定する必要がチャートコンポーネントについてはそのaspxページ

<configuration> 
<system.web> 
<authorization> 
    <allow roles="ANALYST"/> 
    <deny users="*" /> 

</authorization> 
<httpHandlers> 
    <add path="ChartImg.axd" verb="*" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/> 
</httpHandlers> 

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

答えて

1

のための私のconfigファイルがありますin

例えば

<add key="ChartImageHandler" value="storage=file;timeout=20;url=~/ChartImages/" /> 

urlパラメータ。また、そのディレクトリは、アプリケーションが書き込むことができるように設定する必要があります。

ローカルで実行すると、サイトはユーザーアカウントのコンテキストで実行されています。明らかに、プロジェクトディレクトリ内の任意の場所にファイルをドロップするための読み取り/書き込み権限があります。これが「あなたのマシンで動作する」理由です。

しかし、Webサーバーに展開すると、アプリプールのIDで実行される可能性が高くなります。アプリケーションプールには、セキュリティの悪夢となるような場所にファイルを作成するための適切な権限はほとんどありません。

したがって、グラフファイルを削除する特別なディレクトリを設定する必要があります。また、アプリケーションプールに、そのディレクトリにファイルを作成するための適切な権限があることを確認する必要があります。最後に、そのディレクトリ内のファイルを実行する権限が何もないことを確かめてください。それ以外の場合は、アプリケーションとデータを圧縮して、ホームページからそのリンクを貼り付けることもできます。

+0

ありがとう!!ディレクトリの問題でした。私はちょうどそれを解決した。私は長い時間を取った:) – Anjali5

0

web.configの<handlers />セクションにChartへの参照を追加しましたか?

<configuration> 
<system.webServer> 
    <handlers> 
    <remove name="ChartImageHandler" /> 
    <add name="ChartImageHandler" preCondition="integratedMode" verb="GET,HEAD,POST" 
      path="ChartImg.axd" 
      type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, 
      System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral,   
      PublicKeyToken=31bf3856ad364e35" /> 
    </handlers> 
関連する問題