asp.net-mvc – 找不到CrystalImageHandler.aspx

前端之家收集整理的这篇文章主要介绍了asp.net-mvc – 找不到CrystalImageHandler.aspx前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在MVC3应用程序中的普通ASP.NET aspx页面上使用Crystal报表查看器.在控制器操作中,我只是重定向到aspx页面,报告显示正常.但问题在于动态图像.我找到了最简单的解决方案,将图像路径作为报表参数传递,并将此参数设置为图像源.在Visual Studio预览中,这工作正常但在执行时我在页面上看到此错误.

“NetworkError: 404 Not Found –
server/ReportWebForms/CrystalImageHandler.aspx?dynamicimage=cr_tmp_image_4fbcb73a-e001-4365-84fc-164788dd1605.png”

所以我假设,以前没有水晶报告的经验,问题出在CrystalImageHandler.aspx中.
我在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></system.web>
  <handlers><add name="CrystalImageHandler.aspx_GET" verb="GET" path="CrystalImageHandler.aspx" type="CrystalDecisions.Web.CrystalImageHandler,PublicKeyToken=692fbea5521e1304" preCondition="integratedMode"/></handlers></system.webServer>

这是MVC类型的问题吗?有人可以帮忙吗?

谢谢

解决方法

我有同样的问题,但幸运的是我有一些Crystal Reports的经验.

您只需要更改Web.config,因为“path”属性设置为site root.
如果您在浏览器中打开URL并从中删除ReportWebForms,它将起作用.

实际上我刚添加了2行配置:

<system.web>
    <httpHandlers>
      <add verb="GET" path="CrystalImageHandler.aspx" type="CrystalDecisions.Web.CrystalImageHandler,PublicKeyToken=692fbea5521e1304" />
      <!-- Added -->
      <add verb="GET" path="Reports/CrystalImageHandler.aspx" type="CrystalDecisions.Web.CrystalImageHandler,PublicKeyToken=692fbea5521e1304" />
      <add verb="GET,HEAD" path="asset.axd" validate="false" type="Telerik.Web.Mvc.WebAssetHttpHandler,Telerik.Web.Mvc" />
    </httpHandlers>
</system.web>

<system.webServer>
    <handlers>
      <add name="MiniProfiler" path="mini-profiler-resources/*" verb="*" type="System.Web.Routing.UrlRoutingModule" resourceType="Unspecified" preCondition="integratedMode" />
      <add name="CrystalImageHandler.aspx_GET" verb="GET" path="CrystalImageHandler.aspx" type="CrystalDecisions.Web.CrystalImageHandler,PublicKeyToken=692fbea5521e1304" preCondition="integratedMode" />
      <!-- Added -->
      <add name="CrystalImageHandler.aspx_GETR" verb="GET" path="Reports/CrystalImageHandler.aspx" type="CrystalDecisions.Web.CrystalImageHandler,PublicKeyToken=692fbea5521e1304" preCondition="integratedMode" />
      <remove name="asset" />
      <add name="asset" preCondition="integratedMode" verb="GET,HEAD" path="asset.axd" type="Telerik.Web.Mvc.WebAssetHttpHandler,Telerik.Web.Mvc" />
    </handlers>
</system.webServer>

最后,您必须为MVC应用程序添加一个忽略规则:

routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.IgnoreRoute("{resource}.aspx/{*pathInfo}");
// Here is added new ignore rule
routes.IgnoreRoute("Reports/{resource}.aspx/{*pathInfo}");

在我的例子中,我有一个名为Reports的文件夹,其中放置了.aspx文件.我想你应该在你的情况下将其更改为ReportWebForms.

猜你在找的asp.Net相关文章