我有一个严重依赖图表的应用程序,目前图表将在ASP.Net开发服务器中运行,但当我尝试发布到我的服务器(Win 2008 Server R2,IIS 7)时,图表不会显示.
使用Firebug,我可以看到对ChartImg.axd的调用返回404,我得到的只是IE中的空白图像持有者,或者在Firefox中没有.到目前为止,我已经搜索了大约3或4个小时,并且已经尝试了所有推荐的内容,但似乎没有任何工作.
我想使用memory/HttpImageHandler,而不是ImageLocation配置.
我的Web.Config
<appSettings>
<!--<add key="ChartImageHandler" value="storage=file;timeout=20;dir=c:\TempImageFiles\;" />-->
<add key="ChartImageHandler" value="storage=memory;timeout=20;deleteAfterServicing=false" />
</appSettings>
<system.webServer>
<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>
<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>
<pages>
<controls>
<add tagPrefix="asp" namespace="System.Web.UI.DataVisualization.Charting"
assembly="System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</controls>
</pages>
<compilation debug="true" targetFramework="4.0">
<assemblies>
<add assembly="System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</assemblies>
</compilation>
<customErrors mode="Off"/>
</system.web>
Run Code Online (Sandbox Code Playgroud)
有没有人有任何想法,我出错了,以防止我在我的服务器上工作?
我找到了问题的答案,但我相信我的问题源于我的代码运行方式.
一旦我privateImages=false在appSettings下为我的ChartImageHandler设置,我的图像没有问题,使用带文件存储的ImageLocation或带内存存储的HttpHandler.
我查看了这里的列表,发现我的代码没有以下内容:
因此隐式默认设置privateImages=true让我无法下载我的图像.当我设置privateImages=false我没有问题,图表工作正常.我将我的应用程序设置为使用Windows身份验证,然后设置privateImages=true我的图表,现在使用图像位置设置或HttpHandler设置生成.
希望这很有帮助.我知道我花了很长时间四处寻找并无处可去.
| 归档时间: |
|
| 查看次数: |
23430 次 |
| 最近记录: |