任何人在使用新的免费图表时都会出现此错误控制从Dundas购买的MS?
“执行ChartImg.axd的子请求时出错”
在MSDN论坛上,他们建议这是我的web.config: MSDN forum post
到目前为止,还没有解决问题。还有其他想法吗?
答案 0 :(得分:70)
我遇到了同样的问题:图表可以在一个页面上运行但在下一个页面上不运行。如果在POST(即回发)中第一次初始化图表,则会抛出错误,因为处理程序配置不正确。要解决此问题,请通过添加POST谓词来修改本主题中用户LaptopHeaven引用的httpHandler配置:
<add path="ChartImg.axd" verb="GET,HEAD,POST" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false" />
我已经在Scott Anderson在他关于这个主题的开篇文章中提到的MSDN论坛帖子中写了更详尽的解释。
答案 1 :(得分:14)
我遇到了这个错误,但是通过在我的web.config文件的system.web \ httpHandler部分添加一个元素来纠正它。我添加了以下内容:
<add path="ChartImg.axd" verb="GET,HEAD" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false" />
答案 2 :(得分:10)
在.NET 4.0上,图表是内置的,但您仍可能需要在下面添加类似的标记:
<add path="ChartImg.axd" verb="GET,HEAD,POST" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false" />
答案 3 :(得分:5)
尝试(不要忘记ChartImageHandler键中的路径)
<appSettings>
<add key="ChartImageHandler" value="storage=file;timeout=20;dir=c:\TempImageFiles\;" />
</appSettings>
<httpHandlers>
...
<add path="ChartImg.axd" verb="GET,HEAD" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false" />
...
</httpHandlers>
<handlers>
...
<add name="ChartImageHandler" preCondition="integratedMode" verb="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>
答案 4 :(得分:5)
另请注意,将图表控件从工具箱拖到页面上时,应该在web.config中创建必要的条目,如果您当时处于设计模式,则只会出现。 < / p>
如果您处于源模式并拖放则不会发生。
此外,在设计模式下添加图表控件时,项目/类文件中必须存在某种形式的注册。因为如果你处于源模式并且没有图表控件,你就不会像上面那样获得web.config中的条目。如果您进入设计模式并从工具箱转到页面,您将获得web.config中的条目。
但是,如果然后删除图表,你在设计模式下,它将擦除web.config中的条目(假设单个页面站点),即使你还有另一个图表控件在页面上进入源模式。
所以不,你不是疯了,只是不直观。 ;)
答案 5 :(得分:3)
我发布了一种解决MSDN论坛问题的方法:
嗯,我仍然不知道为什么我得到了例外,但我似乎找到了一个解决方法。我做了一个实验,我把假定的冒犯web.config并将其复制到一个新项目中,我添加了一个新的Web表单和图表控件,并使用“UseHttpHandler”选项将图表控件渲染得很好。这让我相信实际上并不是web.config在我的情况下是问题,所以我回到原始项目并将图表添加到另一个Web表单作为实验,它工作了!更令人惊讶的是,在那之后我进入了违规页面,它也起作用了!然后我从另一页上取下新图表并检查了原始的违规页面,它又被打破了。然后我发现如果我在违规页面之前的任何页面上放置了图表控件,它会起作用,否则它会抛出异常。这些控件非常酷,但我没有遇到问题,找到另一个页面将其放在违规页面的路径上:))
这解决了问题,但如果有人有任何理论我为什么会感兴趣...也许是一个错误?
答案 6 :(得分:1)
有关此内容的更多信息:
我遇到了web.config问题也遇到了问题,并且当我将Chart控件拖放到页面上时,通过确保代码编辑器中没有打开web.config来解决这个问题。如果web.config尚未打开,Visual Studio 2010将进行适当的修改。
成功应用web.config问题后,我能够成功通过“错误执行子请求”错误。
同样关于MVC应用程序的使用,我在我的MVC 2应用程序(VS2010 / .NET 4)中努力实现这个并且遇到了另一个问题。
页面对ChartImg.axd的调用导致HTTP 404错误。 (我发现这是使用Fiddler。)
事实证明该页面试图从/MyController/ChartImg.axd而不是/ChartImg.axd(从根目录)访问处理程序。
我能够通过将此行添加到我的Global.asax.cs文件中来解决问题:
routes.IgnoreRoute("{controller}/{resource}.axd/{*pathInfo}");
对于一些不得不求助于更改Chart.ImageStorageMode属性的用户来说,这可能是个问题。
答案 7 :(得分:0)
只是想指出它也是图像未找到错误的权限问题。
在图片文件夹中设置“允许修改”权限(对于运行网站的帐户,默认为“C:\ TempImageFiles”。
问题消失了。
答案 8 :(得分:0)
请在webconfig中添加
add verb =“GET,HEAD”path =“ChartImg.axd”type =“System.Web.UI.DataVisualization.Charting.ChartHttpHandler,System.Web.DataVisualization,Version = 3.5.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35“
由于
Basanth
答案 9 :(得分:0)
在IIS 6.0(Server 2003)中,如果缺少httpHandler,则会发生此错误(请参阅Previous Answer)
查看堆栈跟踪,似乎IIS 6.0假定将加载处理程序。它在语句上执行Execute并吞下异常。在IIS 6.0的httpHandlers下包含以下属性(如上所示)为我修复了这个。
<add path="ChartImg.axd" verb="GET,HEAD" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/>
请注意,我将版本从上一个答案更改为4.0.0.0并在Server 2008(IIS 7.0)和Server 2003(IIS 6.0)中进行了测试
答案 10 :(得分:0)
此问题的另一个原因可能是应用程序池设置为“经典”模式。我的处理程序配置正确,但我得到了同样的错误。
<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" />
我将应用程序池切换到“集成”模式。图表控件开始正常工作。
答案 11 :(得分:0)
通过在webconfig中添加chatImageHandler解决了此问题。
close()