1

我已经在 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):10/7/2009 2:40:03 PM 事件 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 异常消息:找不到图像。

请求信息: 请求 URL:http ://www.mydomain.com/ChartImg.axd?i=chart_0_3.png&g=bccc8aa11abb470980c60e8cf1e71e15 请求路径:/ChartImg.axd 用户主机地址:我的域 ip 用户:已
认证:False 认证类型:
线程帐户名称:NT AUTHORITY\NETWORK SERVICE

线程信息:线程 ID:7 线程帐户名称:NT AUTHORITY\NETWORK SERVICE 正在模拟:错误堆栈跟踪:在 System.Web.UI.DataVisualization.Charting.ChartHttpHandler.ProcessSavedChartImage(HttpContext context) 在 System.Web.UI.DataVisualization。 Charting.ChartHttpHandler.System.Web.IHttpHandler.ProcessRequest(HttpContext context) at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)


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

谢谢,丰富

4

4 回答 4

1

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

<add key="ChartImageHandler" value="storage=file;timeout=20;dir=c:\TempImageFiles\;deleteAfterServicing=false;" />
于 2010-05-03T17:42:43.867 回答
0

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

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

于 2009-10-07T16:15:00.747 回答
0

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

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

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

于 2009-10-11T19:24:09.253 回答
0

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

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

于 2010-05-06T17:31:44.530 回答