【问题标题】:Crystal Reports Graph image not displayingCrystal Reports 图形图像未显示
【发布时间】:2014-12-16 11:20:11
【问题描述】:

我正在使用 Crystal Reports for VS2010 service pack 9 在 Windows 2012 R2 上运行 IIS 8.5。

无论我做什么,我都无法在查看器中显示图像...报告的所有其他元素都很好。

我尝试添加看似无效的处理程序:

<add verb="GET" path="CrystalImageHandler.aspx" type="CrystalDecisions.Web.CrystalImageHandler, CrystalDecisions.Web,Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/>

站点/应用程序池在本地帐户下运行,并且此帐户对 C:/Windows/Temp 具有完全权限 - 与网络服务一样。

此外,我可以看到在 C:/Windows/Temp .... 中创建的图形图像。开花查看器不会显示它。

该站点作为虚拟目录运行,父站点将 aspnet_client 设置为虚拟目录 - 这就是所有查看器按钮图像等都能正确显示的原因。

附: Fiddler4 也为图像提供状态代码 302(找到?)!

有什么想法吗?我对这个有点难过。

【问题讨论】:

    标签: c# asp.net-mvc-4 crystal-reports crystal-reports-2010 crystal-reports-viewer


    【解决方案1】:

    问题是双重的...... CrystalImagehandler.aspx 没有被分配,并且 MVC 中的路由在定义后阻塞它。

    解决方案是在 RegisterRoutes() 中指定 IgnoreRoute 条目

    routes.IgnoreRoute("CrystalImageHandler.aspx/{*pathInfo}");
    

    并在 web.config 中添加两个条目...

    <system.web>
      <httpHandlers>
          <add verb="GET" path="CrystalImageHandler.aspx" type="CrystalDecisions.Web.CrystalImageHandler, CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" />
      </httpHandlers>
    </system.web>
    

    <system.webServer>
        <handlers>
            <add name="CrystalImageHandler.aspx_GET" verb="GET" path="CrystalImageHandler.aspx" type="CrystalDecisions.Web.CrystalImageHandler, CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" preCondition="integratedMode"/>
        </handlers>
    </system.webServer>
    

    【讨论】:

      【解决方案2】:

      您好,我已经为类似的问题苦苦挣扎了一段时间。

      我希望这个解决方案可以帮助你。

      网络配置更改:

      <httpHandlers>
            <add verb="GET" path="CrystalImageHandler.aspx" type="CrystalDecisions.Web.CrystalImageHandler, CrystalDecisions.Web, Version=13.0.3500.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304" />
          </httpHandlers>
      
      
          <handlers>
            <remove name="CrystalImageHandler.aspx_GET" />
            <add name="CrystalImageHandler.aspx_GET" verb="GET" path="CrystalImageHandler" type="CrystalDecisions.Web.CrystalImageHandler, CrystalDecisions.Web, Version=13.0.3500.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304" preCondition="integratedMode"/>
          </handlers>

      运行代码sn-p展开sn-p 注意*:处理程序路径字段没有“.aspx”扩展名。 将此代码块添加到 global.asax.cs 中

      protected void Application_BeginRequest(object sender, EventArgs e)
      {
          var p = Request.Path.ToLower().Trim();
          if (p.EndsWith("/crystalimagehandler.aspx") && p != "/crystalimagehandler.aspx")
          {
              var fullPath = Request.Url.AbsoluteUri.ToLower();
              var NewURL = fullPath.Replace(".aspx", "");
              Response.Redirect(NewURL);
          }
      }
      

      这将帮助您解决问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-11-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-05-25
        • 1970-01-01
        相关资源
        最近更新 更多