【问题标题】:ASP.Net Chart Control not displaying chart imageASP.Net 图表控件不显示图表图像
【发布时间】:2022-01-11 12:23:11
【问题描述】:

我正在开发一个使用 VB.Net 和 ASP.Net (VS2019 .Net 4) 构建的网站,我正在尝试添加一个 ASP.Net 图表控件,但我遇到了很多问题。我的同事帮助我解决了其中的一些问题,现在它不仅会引发错误,还会生成图表但无法显示它。我可以看到它在我的机器上创建的图像,但是如果我在我的页面上右键单击它,然后选择“在新选项卡中打开图像”,我会得到这个:

HTTP 错误 500.21 - 内部服务器错误处理程序“ChartImg”有错误 模块列表中的“ManagedPipelineHandler”模块

最可能的原因:使用了托管处理程序;然而,ASP.NET 不是 已安装或未完全安装。有排版 处理程序模块列表的配置错误。期间 应用程序初始化,无论是应用程序初始化 功能已将 skipManagedModules 设置为 true,或者重写规则是 设置映射到托管处理程序的 URL 并且还设置 SKIP_MANAGED_MODULES=1。

您可以尝试的事情:如果您使用托管处理程序,请安装 ASP.NET。 确保正确指定处理程序模块的名称。模块 名称区分大小写并使用格式 modules="StaticFileModule,DefaultDocumentModule,DirectoryListingModule"。 确保任何应用程序初始化重写规则集 设置映射到托管的 URL 时 SKIP_MANAGED_MODULE=0 处理程序(例如 .aspx)。作为替代方法,请确保 应用程序初始化重写规则将请求映射到 非托管处理程序(例如,映射到 .htm 文件,该文件映射到 静态文件处理程序。)

详细错误信息:模块 IIS Web 核心通知
ExecuteRequestHandler 处理程序 ChartImg 错误代码 0x8007000d 请求的网址
http://localhost:80/WWW_TFS/GDNv1_Project/trunk-url/gDN/gDN_Support/ChartImg.axd?i=charts_0/chart_0_0.png&g=5850a0c2661a4402a1f0a33a33ec482a 物理路径
C:\WWW\WWW_TFS\GDNv1_Project\gDN\gDN_Support\ChartImg.axd 登录 方法匿名登录用户匿名

在与我的同事进行更多调查后,看起来 ChartImg.axd 丢失了。我已经用谷歌搜索了这个问题,但没有任何运气。我需要进行某种安装吗?或者谁能​​给我一份 ChartImg.axd 的副本?

更新:这个问题没有解决,但现在我开始收到这个错误:

CSLLib.CSLException:图表在 10 次尝试后无法保存项目。 ---> System.IO.IOException: Chart 在 10 次尝试后无法保存项目。

我在 Google 上看到的所有内容都表明磁盘空间不足 - 但我还有超过 500GB 的空间,所以这不是问题。还有什么可能导致这种情况吗?

更新:我发现通过将 ChartImageHandler AppSetting 更改为 'storage=memory;deleteAfterServicing=true;'保存问题消失了。但图表图像仍未显示。

【问题讨论】:

  • 你见过500.21 Bad module "ManagedPipelineHandler" in its module list吗? (aspnet_regiis.exe 的答案不太可能是您想要的答案。)
  • 这不仅适用于服务器吗?我在本地机器上遇到了问题。我还尝试运行命令行解决方案,但我的操作系统(win 10 pro)不支持它,而且我在安装的应用程序中看不到 .Net Framework。
  • 我找错地方了。我在“打开或关闭 Windows 功能”对话框中关闭并重新打开了 ASP.Net 4.8,但它并没有解决问题

标签: asp.net vb.net asp.net-charts


【解决方案1】:

呸!设法自己解决了这个问题。我没有正确设置控件,所以我进行了这些更改并且它起作用了:

  1. 从 asp.net 页面中删除了这个

  2. 删除了所有与 asp.net 图表相关的 web.config 设置

  3. 从页面中移除控件

  4. 在设计视图中将控件拖到页面上

  5. 配置图表控件

  6. 在 web.config 中的 AppSettings 中添加了一行

    key="ChartImageHandler" value="storage=memory;deleteAfterServicing=true;"

  7. 在 web.config 中为 httpHandlers 添加一行

    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"

希望这对将来的其他人有所帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-25
    • 1970-01-01
    相关资源
    最近更新 更多