ASP.Net图表控件在IE 9.0中无法正常工作

时间:2011-08-14 23:12:26

标签: asp.net charts internet-explorer-9

我在我的网络应用程序中使用了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,我不能强迫他们使用其他浏览器或切换到兼容模式。

我很感激你的帮助。

4 个答案:

答案 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>`

请注意,使用此方法,维修后不会删除图像,因为参数名称表明。这意味着您必须自己管理。