2010-01-22 261 views

回答

47

这是你需要什么ASP Windows 7上的.NET 4.0/IIS 7.5

您的web.config文件必须包含以下内容:

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


<compilation targetFramework="4.0"> 
<assemblies> 
    <add assembly="System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
</assemblies> 
</compilation> 

<system.webServer> 

<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> 

你还需要这在你的aspx页面的顶部:

<%@ Register Assembly="System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" 
    Namespace="System.Web.UI.DataVisualization.Charting" TagPrefix="asp" %> 

希望这有助于

1

不知道任何关于MSCharts的信息,但我会说尝试更改应用程序的AppPool为'Classic .NET AppPool'。

或者,您可能需要修改web.config以在其中添加处理程序。见Rick Strahl's post here

+0

我无法用经典的应用程序池,感谢答案。我会研究里克斯特拉尔的帖子。 – Danil 2010-01-22 12:27:23

9

解决方案在web配置中。 IIS7需要在system.webserver中编写处理程序,但不在system.web中。所以我只需要移动处理程序并添加名称属性。

+0

非常感谢,我一直在试图解决这个问题的时间。再次感谢。 – will 2011-06-09 06:09:03

+0

谢谢@达尼它工作! – Xenon 2011-09-27 09:18:44

9

Danil说,IIS7要求您把处理程序

<system.webserver> 
    <handlers> 

添加下面的最后加载处理后的两行

<add name="ChartImg" verb="*" path="ChartImg.axd" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler,  System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> 
<add name="ReportViewer" verb="*" path="Reserved.ReportViewerWebControl.axd" type="Microsoft.Reporting.WebForms.HttpHandler,Microsoft.ReportViewer.WebForms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />