ASP.NET Charting Control无法在生产服务器上运行

Ada*_*dam 8 asp.net mschart

我有一个严重依赖图表的应用程序,目前图表将在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)

有没有人有任何想法,我出错了,以防止我在我的服务器上工作?

Ada*_*dam 6

我找到了问题的答案,但我相信我的问题源于我的代码运行方式.

一旦我privateImages=false在appSettings下为我的ChartImageHandler设置,我的图像没有问题,使用带文件存储的ImageLocation或带内存存储的HttpHandler.

我查看了这里的列表,发现我的代码没有以下内容:

  • 认证
  • 的SessionID
  • AnonymousID

因此隐式默认设置privateImages=true让我无法下载我的图像.当我设置privateImages=false我没有问题,图表工作正常.我将我的应用程序设置为使用Windows身份验证,然后设置privateImages=true我的图表,现在使用图像位置设置或HttpHandler设置生成.

希望这很有帮助.我知道我花了很长时间四处寻找并无处可去.