2017-04-24 94 views
0

我相信我所遇到什么,我认为我最困难的任务使用水晶报表做的。Crystal报表不显示图片:CrytalImageHandler没有找到

问题

我试图表现出对我的报告图像,一个存储在数据库中的varbinary和第二,从我desktop.The问题增加了一个标志,我正面临着是, CrystalImageHandler找不到,也没有我试过的作品。 而下面的错误抛出

http://localhost:1979/ASP/CrystalImageHandler.aspx?dynamicimage=cr_tmp_image_9b453c74-dbe2-4f03-832e-b1bd43e6ec43.png 404 (Not Found)

http://localhost:1979/ASP/CrystalImageHandler.aspx?dynamicimage=cr_tmp_image_0bf1fda9-3e87-446d-94a4-aaad9aa7e53d.png 404 (Not Found)

我已经试过

  1. 我试图忽视的路由。但是,如果我尝试通过删除我的aspx所在的“ASP”路径来导航到图像,它仍然不起作用。然而,这是我的RouteConfig.cs的 'ASP' 似乎不能被忽略

public class RouteConfig { public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.IgnoreRoute("{resource}.aspx/{*pathInfo}"); routes.IgnoreRoute("{*allaspx}", new { allaspx = @".*(CrystalImageHandler).*" }); routes.IgnoreRoute("ASP/{resource}.aspx/{*pathInfo}"); routes.IgnoreRoute("ASP/{resource}.aspx/{*pathInfo}");

routes.MapRoute(
     name: "Default", 
     url: "{controller}/{action}/{id}", 
     defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
    ); 
} 

}

  • 我也尝试将其添加到web.config文件中的处理程序标记。 我曾尝试加入

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

  • 到主的web.config然而,就启动我的应用程序得到的错误An ASP.NET setting has been detected that does not apply in Integrated managed pipeline mode.它,然后说,我可以忽略错误If you are certain that it is OK to ignore this error, it can be disabled by setting system.webServer/[email protected] to false.但设置,以虚假不工作。

  • 我将其放置在第二web.config文件(一个视图中的文件夹,但仍不能解决问题被显示没有图像的问题。
  • 我将不胜感激,如果我提供协助或一位指导来解决这个问题。因为这似乎很奇怪,这么简单的东西可能是这个具有挑战性的。

    回答

    0

    我也是在MVC面临关于加载图像这一问题上的水晶报表但可以通过以下步骤来解决这个问题。

    可能的解决方案:

    首先要检查的是是否包含Crystal Reports图像处理程序。这个处理器的配置似乎并没有被添加到默认的web.config,所以打开它&看看<httpHandlers>元素。您需要以下有:

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

    此外,检查<handlers>元素在<system.webServer>父节点,因为处理程序需要在那里加入,以及:在ASP.NET MVC

    <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"/> 
    

    问题

    如果您使用的是ASP.NET MVC水晶报表,图像可能仍无法加载。这是因为ASP.NET MVC路由引擎正试图地图图像处理器的控制器动作&资源请求,因为它不能返回404个状态。

    要解决此告诉ASP.NET MVC路由引擎忽略该资源的请求。为此,请打开您的路由配置代码(RouteConfig.cs)。

    应该已经有一个忽略.axd资源。添加以下忽略规则:

    routes.IgnoreRoute("{*allaspx}", new { allaspx = @".*(CrystalImageHandler).*" }); 
    

    Source

    +0

    纵观我有什么似乎是等同于您发布的内容。但是,我有两个web.config文件。哪一个应该被编辑,一个是根?或视图文件夹中的一个。编辑在根web.config中给我的错误在说'一个ASP.NET设置已检测到不集成应用托管管道模式。该应用程序定义在System.Web程序配置/ HttpHandlers的section.'我已经把这些视图中web.config中的设置是否正确? – Niana

    +0

    这些键应该在根web.config中。以除去上述错误,请加在根web.config该键'<配置<验证validateIntegratedModeConfiguration =“假” />' – mmushtaq

    +0

    实际上我已经发现了与解决了它,现在我的报告工作了50%。我通过右键单击并选择(标识)添加的图像显示,但是我从我的数据库拖动到报表的varinary图像仍然给出crystalhandlerimage错误。所以现在正在努力 – Niana

    2

    我遇到了类似的问题。我发现在Web.config中更改下面代码中的路径是成功的。我用CrystalImageHandler *替换了CrystalImageHandler.aspx。这似乎解决了我的问题。我不明白为什么说实话。我在网上找到某人的帖子,他建议他不能找到CrsytalImageHandler.aspx页面,并决定仅指向CrystalImageHandler。我认为这可能值得一些尝试。

    我用VS2015,.NET 4.5,C#

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

    希望这有助于

    马克

    +0

    我一直在为此挣扎2天。非常感谢 – zeetit