40

有人在使用从 Dundas 购买的新免费图表控件 MS 时遇到此错误吗?

“执行 ChartImg.axd 的子请求时出错”

在 MSDN 论坛上,他们建议这是我的 web.config: MSDN 论坛帖子

到目前为止,这还没有解决问题。还有其他想法吗?

4

12 回答 12

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 论坛帖子中对为什么会出现此错误进行了更彻底的解释。

于 2009-01-13T07:52:40.177 回答
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" />
于 2008-12-02T20:39:05.370 回答
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" />
于 2011-03-29T18:57:27.220 回答
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>
于 2011-03-18T18:06:41.090 回答
5

另请注意,虽然将图表控件从工具箱拖到您的页面上应该会在 web.config 中创建必要的条目,但这仅在您当时处于设计模式时才会发生。

如果您处于源模式并拖放,则不会发生。

此外,当您在设计模式下添加图表控件时,项目/类文件中必须存在某种形式的注册。因为如果您处于源代码模式并且 dnd 图表控件,您将不会像上面那样在 web.config 中获得条目。如果您随后进入设计模式并从工具箱 dnd 进入页面,您将获得 web.config 中的条目。

但是,如果然后删除图表,您在设计模式下会删除,它会从 web.config 中擦除条目(假设是单页站点),即使您在页面上仍然拥有其他图表控件源模式。

所以不,你不是疯了,只是不直观。;)

于 2012-03-14T09:35:52.907 回答
3

我在 MSDN 论坛上发布了解决此问题的方法:

好吧,我仍然不知道为什么会出现异常,但我似乎找到了解决方法。我做了一个实验,将假定的有问题的 web.config 复制到一个新项目中,在该项目中我添加了一个新的 Web 表单和图表控件,并且图表控件使用“UseHttpHandler”选项渲染得很好。这让我相信实际上并不是 web.config 是我的问题,所以我回到原来的项目,并在另一个 Web 表单中添加了一个图表作为实验,它成功了!更令人惊讶的是,在那之后我去了有问题的页面,它也起作用了!然后我把新图表从另一页上取下来,检查了原来的有问题的页面,它又坏了。然后我发现如果我在违规页面之前的任何页面上放置图表控件,它会起作用,否则它抛出异常。这些控件非常酷,尽管我没有问题地找到另一个页面将其放在违规页面的路径中:)

这解决了问题,但如果有人有任何理论,为什么我会感兴趣......也许是一个错误?

于 2008-11-21T07:04:14.567 回答
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 属性的用户来说,这可能是个问题。

于 2010-07-21T21:16:16.390 回答
1

通过在 webconfig 中添加 chatImageHandler 解决了这个问题。

<system.webServer>
    <validation validateIntegratedModeConfiguration="false"/>
    <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>
  </system.webServer>

更多详情: http: //www.infinetsoft.com/Post/-Solved-Error-executing-child-request-for-ChartImg-axd/1164#.VyenrNJ97cs

于 2016-05-02T19:30:25.337 回答
0

只是想指出,这也是图像未找到错误的权限问题。

在您的图像文件夹上设置“允许修改”权限(默认情况下,对于您的网站运行的帐户,它是“C:\TempImageFiles”。

问题消失。

于 2009-04-22T16:16:56.467 回答
0

请在 webconfig 中添加

添加动词="GET,HEAD" path="ChartImg.axd" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"

谢谢

巴桑特

于 2009-06-24T08:29:07.810 回答
0

在 IIS 6.0 (Server 2003) 中,如果 httpHandler 丢失,则会发生此错误(请参阅上一个答案

查看堆栈跟踪,似乎 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) 中进行了测试

于 2011-06-23T18:50:12.460 回答
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"  />

一旦我将应用程序池切换到“集成”模式。图表控件开始正常工作。

于 2011-07-20T12:21:40.953 回答