ASP.NET Chart:我的web.config出了什么问题。我无法显示图表

时间:2011-06-17 00:18:19

标签: asp.net web-config charts

我刚创建了一个网页,其中包含一些带有一些数据点的准直图表进行测试。在localhost上,图表按预期显示没有问题。但是当我部署到我的webhost时,我得到了500 - 内部服务器错误

500 - Internal server error.
There is a problem with the resource you are looking for, and it cannot be displayed.

这是Visual Studio上传的web.config。你能告诉我这个web.config中有什么缺失或错误吗? appSettings在C:中看起来很可疑,但是如何更改呢?感谢。

<?xml version="1.0"?>
<configuration>
<appSettings>
<add key="ChartImageHandler" value="storage=file;timeout=20;dir=c:\TempImageFiles\;" />
</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>
 </system.web>
</configuration>

3 个答案:

答案 0 :(得分:5)

试试这个链接 http://asifhuddani.wordpress.com/2010/10/07/chart-control-asp-net-4-0-and-iis-7-problem/

然后删除dir = c:\ TempImageFiles \;来自web.config

答案 1 :(得分:2)

我遇到了同样的问题,即在同一部分添加了500个服务器错误。两个更改解决了500服务错误。

  1. 替换为“add path =”ChartImg.axd“verb =”GET,HEAD with add path =“ChartImg.axd”verb =“GET,HEAD,POST”。

  2. 在system.webServer标记之后添加了一行:

    [validation validateIntegratedModeConfiguration =“false”/]

  3. 我不得不替换&lt;用[,否则预览没有显示标签。

答案 2 :(得分:0)

问题是临时目录。可能是因为:

  • 目录不存在
  • 用户无权访问目录,
  • 您指向错误的目录,或者
  • 当您将程序从本地PC移到服务器时,您不再指向本地文件,而是指向URL

解决方案:

  • 如果使用的是Web服务器,则简单而又懒惰的解决方案是在aspx所在的目录中创建一个名为temp的目录。在同一目录中并授予用户修改权限。

  • 如果使用本地PC,则可以使用内存代替文件。请勿在Web服务器中使用此功能,因为这会增加许多用户的负担,但请使用:

    <add key="ChartImageHandler" value="Storage=memory;Timeout=20;"/>
    
  • 如果您使用的是Web服务器,最好的选择是使用url而不是像这样的文件:

    <add key="ChartImageHandler" value="storage=file;timeout=20;url=~/temp" />
    

    您可以使用〜/。或http://…

要向ISS用户添加权限,可以是您的用户池,Windows用户或您以前使用的任何用户。如果使用Windows身份验证,则应将权限授予名为“域用户”的用户。有人向所有人添加用户权限。此权限应包括“修改”