2009-10-07 63 views
1

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

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

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

下面是由控制产生的警告消息:


事件代码:3005 事件消息:发生未处理的异常。 事件时间:2009/10/7下午2点40分03秒 事件时间(UTC):2009/10/7下午2点40分03秒 事件ID:237c3b208962429e8bbc5a48ffd177f0 事件序列:2860 事件发生:26 事件详细信息代码:0

应用程序信息: 应用程序域:/ LM/W3SVC/2/ROOT-1-128993655360497729 信任级别:全 应用程序虚拟路径:/ 应用程序路径:C:\数据\网站\ 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 用户:
通过身份验证:假 身份验证类型:
线程帐户名:NT AUTHORITY \ NETWORK SERVICE

线程信息: 线程ID:7 线程帐户名:NT AUTHORITY \ NETWORK SERVICE 正在模拟:假 堆栈TR王牌:在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步骤,布尔& completedSynchronously)


值得指出的是,所有图表图像的在屏幕上正确显示,所以我不知道何时/何地图像未找到错误正在造成。这是一个64位的问题?

感谢, 丰富

回答

0

我花了一个星期的时间来研究这个问题,似乎没有人回答我为什么在事件查看器中收到警告消息。

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

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

0

你在本地IIS7的网站运行这一点,或者IIS7的网站在ASP.NET 2.0兼容模式下运行?

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

+0

感谢您的建议Zhaph。站点应用程序池表示它正在集成模式下运行。我的Web.config也包含部分中的图表控件,所以这有点奇怪。这不是一个表演限制,但它是很好的调整,如果可能的话警告消息消失。我可以尝试的任何其他提示?再次感谢你的帮助。 – 2009-10-08 08:56:37

+0

不幸的是,这些是我能想到的唯一技巧 - 我根本没有用IIS7做太多工作。 – 2009-10-08 10:01:36

+0

不用担心。感谢您的帮助;) – 2009-10-08 13:04:54

1

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

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

以我的经验,如果用户试图打印的网页,如果deleteAfterServicing是不是在web.config假,您将收到此错误信息,因为图像将被删除。另外,如果deleteAfterServicing = false,如果user1生成图表,则user2生成覆盖图表图像的图表,但user2可以成功打印图表,但user1将触发该异常。