【问题标题】:ASP.net 4.0 Chart Control IIS6 Images not being displayedASP.net 4.0 图表控件 IIS6 图像未显示
【发布时间】:2014-06-03 15:22:22
【问题描述】:

这是我的问题,有一个使用 Web Farm 和负载均衡器托管的 Web 应用程序。该应用程序在 Framework 4.0、Windows 2003 服务器和 IIS6 上运行。我们的本地主机环境是 Windows 7 和 IIS7。

我们注意到间歇性异常“找不到图像”并注意到 Web.config 指向 3.5

所以我们将 web.config 更改为指向 4.0

<add path="ChartImg.axd" verb="GET,HEAD,POST" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/>

我们还使用网络共享来存储在 appSettings 中设置的图表图像

<add key="ChartImageHandler" value="storage=file;timeout=300;dir=\\server\webdata\charts\;deleteAfterServicing=false;"/>

在 web.config 中进行更改后,图像将不会显示在运行 IIS6 的生产服务器或运行 IIS7 的本地环境中。因此,我使用图表控件对所有 Web 表单进行了更改,并添加了 ImageStorageMode="UseImageLocation"。

更改 IIS7 和 IIS6 中显示的图表图像后,但在生产 IIS6 中,它们被放置在 webform 目录中并忽略处理程序位置(网络共享)。我的本地环境运行良好,但我无法正确设置生产设置。我所有的 web.config 设置都在下面,我们将不胜感激。

<appSettings>
<add key="ChartImageHandler" value="storage=file;timeout=300;dir=\\SERVER\webdata\charts\;deleteAfterServicing=false;"/>
</appSettings>

<system.web>
<httpHandlers>
<add path="ChartImg.axd" verb="GET,HEAD,POST" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/>
</httpHandlers>

<compilation debug="true" defaultLanguage="vb" targetFramework="4.0">
<assemblies>
<add assembly="System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</assemblies>
</compilation>

<!--IIS 7 Handler Section-->
<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<handlers>
<remove name="ChartImageHandler"/>
<add name="ChartImageHandler" preCondition="integratedMode" verb="GET,HEAD,POST" path="ChartImg.axd" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization,  Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"  />            
</handlers>
</system.webServer>

【问题讨论】:

    标签: asp.net charts mschart


    【解决方案1】:

    由于您在服务器上使用负载平衡,它可能找不到正确的图像位置。为什么不尝试使用会话来存储图像?

    <appSettings>
        <add key="ChartImageHandler" value="storage=session;timeout=20;" />
    </appSettings>
    

    参考this 了解更多信息。我们在网络场上遇到了同样的问题。明智的做法是将deleteAfterServicing 添加为true。

    【讨论】:

    • 谢谢,但由于网络场和没有会话状态服务器,我们无法使用会话。
    • 然后尝试将其存储在内存中,看看是否解决了问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-22
    • 2017-02-18
    • 2011-12-18
    • 1970-01-01
    • 2012-09-25
    • 1970-01-01
    相关资源
    最近更新 更多