Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc Crystal Reports图像和ASP.NETMVC_Asp.net Mvc_Crystal Reports - Fatal编程技术网

Asp.net mvc Crystal Reports图像和ASP.NETMVC

Asp.net mvc Crystal Reports图像和ASP.NETMVC,asp.net-mvc,crystal-reports,Asp.net Mvc,Crystal Reports,使用CrystalImageHandler.aspx的图表和图像时,我在CrystalReports方面遇到问题。图像无法显示,我怀疑这是由于MVC路由问题造成的 路径图像路径与此类似: src=“/CrystalImageHandler.aspx?dynamicimage=cr_tmp_image_a8301f51-26de-4869-be9f-c3c9ad9cc85e.png” URL与此类似: localhost:01234/ViewCrystalReports.aspx?id=50 无法

使用CrystalImageHandler.aspx的图表和图像时,我在CrystalReports方面遇到问题。图像无法显示,我怀疑这是由于MVC路由问题造成的

路径图像路径与此类似:

src=“/CrystalImageHandler.aspx?dynamicimage=cr_tmp_image_a8301f51-26de-4869-be9f-c3c9ad9cc85e.png”

URL与此类似:

localhost:01234/ViewCrystalReports.aspx?id=50

无法找到该映像,因为它正在不存在的目录中查找。如何更改CrystalImageHandler.aspx所在的路径?我想如果我从根本上引用,问题就会解决,但是我在Web.Config中所做的任何更改都无法工作


我应该提到的是,这是在传统的aspx页面上,而不是在视图上,etc已经找到了答案。路由正在干扰正在生成的CrystalImageHandler.aspx链接。Global.aspx有一行命令路由引擎忽略资源文件:

routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
但这不是一个传统的资源文件,出于某种原因它是一个aspx文件(有人知道为什么吗?)

添加此项修复了它:

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

此控制器将调用处理程序。只需将路由添加到CrystalImageHandler.aspx,它也可以与您想要的任何子路径一起使用(在本例中为/reports)。我无法通过配置让处理程序执行某些操作。

我通过编辑
Web.Config
文件来解决此问题

插入以下行:

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

...
...
*注意写下您的数字版本(version=xx.x.xxxx.x)

要在本地计算机中查看,您将在web配置中添加以下代码

<appSettings>       
<add key="CrystalImageCleaner-AutoStart" value="true" />
<add key="CrystalImageCleaner-Sleep" value="60000" />
<add key="CrystalImageCleaner-Age" value="120000" />    
</appSettings>


以下代码用于在服务器中显示


:)我将在添加web配置时解决这个问题,因为路由干扰了CrystalImageHandler.aspx。因此,在Global.asax或routeConfig文件中,我们可以忽略.aspx扩展名文件的路由。您可以通过添加以下行忽略.aspx扩展路由


routes.IgnoreRoute(“{allaspx}”,新的{allaspx=@..aspx(/.*)”})

你能从代码中创建图像吗?只需创建一个页面,在处理程序中生成图像并将其作为FileResult/StreamResult/WhateverResult返回可能会更容易。Hello Damien,这可能有点离题,但您使用MVC和Crystal Reports的体验如何?我们即将在MVC上创建一个包含大量报告的大型应用程序。你认为这是一个可行的解决方案吗?另外,您是否在运行时使用webforms中的报表(与mvc并排使用)或流式报表?可能与我的重复需要再添加两件事情才能继续。我不知何故在我的项目中加入了Crystal,它添加了httpHandler,但它在最后添加了以下内容:
predition=“integratedMode,runtimeVersionv4.0
我将其更改为runtimeVersion2.0另一件事是文件夹
C:\inetpub\wwwroot\aspnet\u client\system\u web
有一个用于2\u 0\u 50727的文件夹,我将其内容复制到4_0_30319中,我假设runtimeVersion2.0引用了CrystalDecisions.Web.CrystalImageHandler是一个.Net 2程序集,而文件夹4_0_30319由ASP.Net 4.0引用
<httpHandlers>
<add verb="GET" path="CrystalImageHandler.aspx"    type="CrystalDecisions.Web.CrystalImageHandler, CrystalDecisions.Web,Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" /> 
</httpHandlers>
<appSettings>       
<add key="CrystalImageCleaner-AutoStart" value="true" />
<add key="CrystalImageCleaner-Sleep" value="60000" />
<add key="CrystalImageCleaner-Age" value="120000" />    
</appSettings>
<system.webServer>      
<handlers>                
    <add name="CrystalImageHandler.aspx_GET" verb="GET" path="CrystalImageHandler.aspx" type="CrystalDecisions.Web.CrystalImageHandler, CrystalDecisions.Web, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" preCondition="integratedMode"/> 
</handlers>
</system.webServer>