执行chartim .axd的子请求时出错.这不是复制品

本文关键字:出错 这不是 复制品 请求 chartim axd 执行 | 更新日期: 2023-09-27 18:09:09

我已经尝试了这个线程的所有解决方案:.NET 3.5图表控件异常:执行ChartImg.axd的子请求出错

我添加了

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

代码到httpHandlers节,但它仍然不工作。

我还添加了:

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

但是经过一段时间的战斗,将这些标签放在配置文件中的正确位置,我得到同样的错误。

这是我当前的配置文件:

<?xml version="1.0"?>
<!--
  For more information on how to configure your ASP.NET application, please visit
  http://go.microsoft.com/fwlink/?LinkId=169433
  -->
<configuration>
  <appSettings>
    <add key="ChartImageHandler" value="storage=file;timeout=20;dir=c:'TempImageFiles';" />
  </appSettings>
  <system.web>
    <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" />
    </httpHandlers>
    <!--<pages>
      <controls>
        <add tagPrefix="artem" namespace="Artem.Google.UI" assembly="Artem.Google"/>
      </controls>
    </pages>-->
    <compilation debug="true" targetFramework="4.5">
      <assemblies> 
        <add assembly="System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>  
      </assemblies>
    </compilation>
    <httpRuntime targetFramework="4.5"/>
  </system.web>
  <system.webServer>
    <validation validateIntegratedModeConfiguration="false"/>
  </system.webServer>
</configuration>

我被困在这个上面两个小时了,什么都没弄好。我使用的是。net framework 4.5

执行chartim .axd的子请求时出错.这不是复制品

我的情况如下:

  • 从3.5升级到4.0
  • 它在我的机器(64位Win7)本地编译时工作
  • 发布到Win2003服务器时不工作

我只是错过了这个:

<system.web><httpHandlers>
  <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" />
</httpHandlers></system.web>

我设法解决了这个问题(我正在使用DotNetNuke,我有错误"执行ChartImg.axd的子请求错误")

我在我的网页上添加了以下几行。配置文件

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

在DotNetNuke中,如果您想在安装期间从模块更新配置文件,请遵循这篇文章。

致任何有此问题却无法解决的人。

  1. 我去了这里:http://forums.asp.net/t/1843074.aspx/1

  2. 我复制并粘贴这段代码到相应的部分在网络上。配置文件。

  3. 然后我收到了IIS 8在运行带有图表控件的页面时的错误消息:

    HTTP错误500.23 -内部服务器错误一个ASP。

  4. 留言还包含建议:

可以尝试的方法:将配置迁移到系统。网络服务器/处理程序部分。您可以手动或使用从命令行打开AppCmd。例如,从IIS Express安装目录,运行apppcmd migrate config "Default Web Site/"。使用AppCmd迁移您的应用程序将使其能够工作集成模式。它将继续在经典模式下工作IIS的旧版本。如果你确定它可以忽略此错误,可以通过设置来禁用系统。网络服务器/validation@validateIntegratedModeConfiguration假的。或者,将应用程序切换到Classic模式应用程序池。例如,从IIS Express安装目录中,运行apppcmd设置app"默认网站/"/applicationPool:"Clr4ClassicAppPool"。只有在你做不到的时候才这样做迁移您的应用程序。

其中一个建议是:

将应用程序切换到经典模式应用程序池。为例如,在IIS Express安装目录下,运行apppcmd set app"Default Web Site/"/applicationPool:"Clr4ClassicAppPool"。只做如果您无法迁移您的应用程序。

所以我谷歌一下,然后我到这里:

如何将IIS Developer Express切换到"经典模式"

切换到经典模式的最佳解决方案是:

不需要使用appcmd,最好在项目的设置:

在解决方案资源管理器中单击web项目,按F4获取属性页显示(不是属性表,而是更简单的属性窗口,你设置一般的东西)寻找"管理管道模式',更改为'Classic'

现在Chart控件工作了。如果有人有更好的解决方案(例如,错误中的其他解决方案建议,我不理解),请随时回答这些建议的更清晰的描述。

在根asp:chart标签中使用以下属性

ImageLocation="~/images/temp/ChartPic_#SEQ(300,3)" ImageStorageMode="UseImageLocation"

删除web.config中的所有配置。通过上述更改,您将处理保存图表图像的位置,而不是图表api。

对我有效的解决方案是在这里发布的

<system.web>
//comment this in local IIS7, on host uncomment
<httpHandlers>
<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" />
    </httpHandlers>
</system.web>
  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true" />
    <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>

另外,我必须把这个添加到appSettings

<appSettings>
<add key="ChartImageHandler" value="storage=file;timeout=20;dir=c:'Temp';" />
</appSettings>

我在Windows 2003服务器上间歇性地得到这个错误。我应用了网络。从Michael的解决方案的配置代码,但它仍然偶尔会掉下来。我是这样修复的:

在Windows 2003服务器上远程桌面时,我通过http://localhost/websitename在本地启动了网站

该站点在本地工作,并开始在其他地方正常工作。不知道为什么!