[ASP.net] Chart Control Troubleshooting(Chart控制項疑難排解)
當畫面上有ASP.net Chart控制項,執行起來會出錯的話,一般改一下Web.config就行了。
如果遇到工具箱沒有Chart控制項,也是改Web.config重開Visual Studio再重新拖拉(或自己打Code)就解決了。
.net 4可能發生的問題:
Invalid temp directory in chart handler configuration [c:\TempImageFiles\].
建議解法:
先在網站根目錄新建資料夾TempImages
然後在Web.config檔裡加
<!--網站根目錄底下要建一個TempImages資料夾-->
<add key="ChartImageHandler" value="storage=file;timeout=20;url=~/TempImages;" />
</appSettings>
由.net3.5升級到.net4 Web Site可能發生的問題
Parser Error Message: Unknown server tag 'asp:Chart'.
解法:
<controls>
<!--圖表控制項必要的項目-->
<add tagPrefix="asp" namespace="System.Web.UI.DataVisualization.Charting" assembly="System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</controls>
<tagMapping>
...
</tagMapping>
</pages>
Error executing child request for ChartImg.axd.
Exception Details: System.Web.HttpException: Error executing child request for ChartImg.axd.
解法:
<!--圖表控制項必要的項目-->
<add path="ChartImg.axd" verb="POST,GET,HEAD" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/>
</httpHandlers>
在現有的.net3.5(不管是不是SP1)或.net2.0 Web Site加入Chart Control的建議流程:
(要執行web site的電腦)
1.先裝好.net Framework 3.5 SP1
Microsoft .NET Framework 3.5 Service pack 1 (Full Package) - 繁體中文
2.安裝Chart Control
Microsoft Chart Controls for Microsoft .NET Framework 3.5
3.安裝完Chart Control後
把C:\Program Files\Microsoft Chart Controls\Assemblies底下的Web相關dll檔放在網站的Bin資料夾底下
4.改Web.config
<!--網站根目錄底下要建一個TempImages資料夾-->
<add key="ChartImageHandler" value="storage=file;timeout=20;url=~/TempImages;" />
</appSettings>
<httpHandlers>
<add path="ChartImg.axd" verb="POST,GET,HEAD" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false" />
</httpHandlers>
<system.webServer>
<handlers>
<remove name="ChartImageHandler"/>
<add name="ChartImageHandler" preCondition="integratedMode" verb="POST,GET,HEAD" path="ChartImg.axd" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</handlers>
</system.webServer>
<controls>
<add tagPrefix ="asp" namespace="System.Web.UI.DataVisualization.Charting" assembly="System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</controls>
2011.5.4 追加:
無法載入檔案或組件 'System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' 或其相依性的其中之一。 系統找不到指定的檔案
1.先裝好.net Framework 3.5 SP1
Microsoft .NET Framework 3.5 Service pack 1 (Full Package) - 繁體中文
2.安裝Chart Control
Microsoft Chart Controls for Microsoft .NET Framework 3.5
3.安裝完Chart Control後
把C:\Program Files\Microsoft Chart Controls\Assemblies底下的Web相關dll檔放在網站的Bin資料夾底下
其他相關資料:
Microsoft Chart Controls - 執行 ChartImg.axd 的子要求時發生錯誤。 - 瓶水相逢 - 艾小克- 點部落
2011.6.21追記
No http handler was found for request type 'GET'
重點要改config區段:
<handlers>
<add name="ChartImg" verb="*" path="ChartImg.axd" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</handlers>
</system.webServer>