【发布时间】: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>
【问题讨论】: