asp.net:图表处理程序配置中的无效临时图像目录[C:\ Users \ user1 \ Documents \ Visual Studio 2010 \ WebSites \ Website1 \]

时间:2014-10-15 21:13:15

标签: c# asp.net mschart

我收到此错误图表处理程序配置[C:\ Users \ user1 \ Documents \ Visual Studio 2010 \ WebSites \ Website1]中的临时目录无效。

最初我得到的是没有找到http处理程序,因为我解决了请求类型'GET'错误。

但现在我收到了上述错误。

这是我的web.config,

    <?xml version="1.0"?>
    <!--
      For more information on how to configure your ASP.NET application, please visit
      http://go.microsoft.com/fwlink/?LinkId=169433
      -->
<configuration>

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

  <system.webServer>
    <handlers>
      <add name="ChartImg" verb="*" 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>

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

    <authentication mode="None" />

    <authorization>
      <allow users="*" />
    </authorization>
  </system.web>
</configuration>

让我知道我做错了什么。

感谢。

2 个答案:

答案 0 :(得分:1)

我有同样的问题,我尝试了一切,但没有任何效果。 直到我发现你也可以使用内存

所以你需要改变:

<appSettings>
<add key="ChartImageHandler" value="Storage=file;Timeout=20;"/>
</appSettings>

<appSettings>
<add key="ChartImageHandler" value="Storage=memory;Timeout=20;"/>
</appSettings>

然后它会将图像存储在内存中。

答案 1 :(得分: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身份验证,则应将权限授予名为“域用户”的用户。有人向所有人添加用户权限。此权限应包括“修改”