【问题标题】:ASP.NET Chart Control errors in Event Viewer事件查看器中的 ASP.NET 图表控件错误
【发布时间】:2010-12-04 15:31:55
【问题描述】:

我已经在 win2k3(32 位)设置上使用 ASP.NET 图表控件一段时间没有任何问题,但注意到在我们的新 win2k8(64 位)框上,我在事件查看器中收到一条警告消息图表控件。

在我的 web.config 文件中,我有以下标签告诉图表控件我可以在哪里存储临时文件:

<add key="ChartImageHandler" value="storage=file;timeout=20;dir=c:\TempImageFiles\;" />

以下是控件产生的警告信息:


事件代码:3005 事件消息:发生未处理的异常。 活动时间:10/7/2009 2:40:03 PM 活动时间(UTC):2009 年 10 月 7 日下午 2:40:03 事件 ID:237c3b208962429e8bbc5a48ffd177f0 事件序列:2860 事件发生:26 事件详情代码:0

申请信息: 应用域:/LM/W3SVC/2/ROOT-1-128993655360497729 信任级别:完全 应用程序虚拟路径:/ 应用程序路径:C:\data\sites\mydomain.com\ 机器名称:231692-WEB

工艺信息: 进程 ID:4068 进程名称:w3wp.exe 帐号名称:NT AUTHORITY\NETWORK SERVICE

异常信息: 异常类型:ArgumentException 异常消息:找不到图像。

请求信息: 请求网址:http://www.mydomain.com/ChartImg.axd?i=chart_0_3.png&g=bccc8aa11abb470980c60e8cf1e71e15 请求路径:/ChartImg.axd 用户主机地址:我的域ip 用户:
是否经过身份验证:假 身份验证类型:
线程账户名:NT AUTHORITY\NETWORK SERVICE

线程信息: 线程 ID:7 线程帐户名称:NT AUTHORITY\NETWORK SERVICE 是否冒充:假 堆栈跟踪:在 System.Web.UI.DataVisualization.Charting.ChartHttpHandler.ProcessSavedChartImage(HttpContext 上下文) 在 System.Web.UI.DataVisualization.Charting.ChartHttpHandler.System.Web.IHttpHandler.ProcessRequest(HttpContext 上下文) 在 System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() 在 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)


值得指出的是,所有图表图像都正确显示在屏幕上,所以我不确定何时/何地导致找不到图像错误。这是 64 位的问题吗?

谢谢, 丰富

【问题讨论】:

    标签: asp.net windows-server-2008 mschart


    【解决方案1】:

    根据我的经验,如果用户在 web.config 中的 deleteAfterServicing 不为 false 时尝试打印网页,您将收到此错误消息,因为图像将被删除。

    另外,如果deleteAfterServicing=false,如果user1生成图表,那么user2生成的图表覆盖图表图片,user2可以成功打印图表,但是user1会触发异常。

    【讨论】:

      【解决方案2】:

      每当用户尝试将图表从 IE 复制或拖动到 Word 文档时,都会出现同样的错误。默认情况下,服务器会在图表图像传送到用户浏览器后立即删除它们,而 IE 似乎不会复制缓存的图像数据。我不确定它背后的机制,但无论是复制还是粘贴,都必须再次从服务器获取图像。通过将 web.config 中的条目更改为:

      <add key="ChartImageHandler" value="storage=file;timeout=20;dir=c:\TempImageFiles\;deleteAfterServicing=false;" />
      

      【讨论】:

        【解决方案3】:

        我花了一周时间研究这个问题,但似乎没有人知道为什么我会在事件查看器中收到警告消息。

        在主要的 MS Chart 论坛上也问过这个问题,但没有运气。链接:http://social.msdn.microsoft.com/Forums/en-US/MSWinWebChart/thread/75f50254-0f02-4a73-bfbe-afab31f15f77

        将标记为已回答只是为了结束问题,但如果我找到答案,我会在未来更新。我怀疑这发生在更多人身上,但因为前端的一切看起来都还不错,没有人真正检查过日志,所以他们可能没有意识到它正在发生在他们身上。

        【讨论】:

          【解决方案4】:

          您是在本机 IIS7 站点中运行它,还是在 ASP.NET 2.0 兼容模式下运行的 IIS7 站点中运行?

          IIS 可能只是在日志记录方面有点冗长,或者记录存在问题,然后退回到旧支持类型模式 - .axd 文件是虚拟文件,通常不存在于磁盘,它们被映射为 web.config 中的处理程序 - 请注意,IIS7 现在支持 &lt;system.webServer&gt; 元素,并且您的处理程序应该映射到那里以用于新站点,而不是 &lt;system.web&gt; 部分。

          【讨论】:

          • 感谢您的建议 Zhaph。站点应用程序池说它在集成模式下运行。我的 Web.config 还包括 部分中的图表控件,所以这有点奇怪。这不是一个显示停止器,但它会很好地调整它,以便警告消息在可能的情况下消失。我可以尝试任何其他提示吗?再次感谢您的帮助。
          • 遗憾的是,这些是我能想到的唯一技巧 - 我对 IIS7 并没有真正做过太多。
          • 不用担心。无论如何感谢您的帮助;)
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-11-25
          • 1970-01-01
          • 2011-12-29
          • 2010-10-17
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多