我在我的网络应用程序中使用了ASP:图表控件,它工作正常,直到我将浏览器从IE 8.0升级到9.0。
现在几乎每次我来到带有一些图表控件的页面时,图片都不会被渲染,但是如果我引用页面它总是正确地渲染图像。
所以我做了一些研究并对web配置中的“ChartImageHandler”键进行了一些更改。现在它是这样的:
[图表图片文件夹]指向我的网络应用程序内的文件夹,拥有我的应用程序池用户的完全权限(实际上只是为了测试我给了每个人完全权限,绝对不是权限问题)。
问题是我对Firefox,Safarai,chrome甚至IE版本的旧版本都没有任何问题,问题只发生在IE 9.0中(如果我在IE 9.0中切换到兼容模式,BTW工作正常)。
当尝试使用IE 9.0观看此页面时,我可以看到图表图像将在该文件夹中创建,但它们不会被删除,但使用任何其他浏览器,这些文件将被创建,然后被删除而没有任何问题。
我试过“storage = session”或“storage = memory”,没有运气,虽然我确定我不能使用“内存”,因为它应该部署在多个Web服务器平台上(负载平衡器和东西)
不幸的是,大多数用户都在使用IE 9.0,我不能强迫他们使用其他浏览器或切换到兼容模式。
我很感激你的帮助。
答案 0 :(得分:1)
尝试将ImageStorageMode =“UseImageLocation”添加到您的图表中。所以图表看起来像
<asp:Chart ID="Chart1" runat="server" DataSourceID="drawChartObjectDataSource" Height="200px"
Width="800px" EnableViewState="True" ImageStorageMode="UseImageLocation">
然后转到您的web.config并添加AppSetting
<configuration>
<appSettings>
<add key="ChartImageHandler" value="storage=file;timeout=400;dir=c:\TempImageFiles\;" />
</appSettings>
注意存储图像的位置C:\ TempImageFiles \必须是EXSIT
谢谢,我希望它能解决问题
答案 1 :(得分:1)
我有完全相同的问题,我解决了它。
我的asp:chart控件所在的网页有一个母版页参考
的MasterPageFile = “〜/ MasterPage.master”
在主页中我有一些.js和.css引用。
我解决了这个改变引用的顺序(你必须首先引用javascript代码)
我不知道为什么会这样,IE 9.0的东西。
答案 2 :(得分:0)
答案 3 :(得分:0)
我通过将deleteAfterServicing = false参数添加到web.config中的图像处理程序来解决了这个问题。 e.g。
<appSettings>
<add key="ChartImageHandler" value="storage=file;timeout=400;dir=c:\TempImageFiles\;deleteAfterServicing=false;" />`
</appSettings>`
请注意,使用此方法,维修后不会删除图像,因为参数名称表明。这意味着您必须自己管理。