我使用水晶报表的MVC3应用程序正常ASP.NET aspx页面上的观众。 在控制器的行动,我简单地重定向到aspx页面和报告显示的罚款。 但问题是动态图像。 我已经找到了这一点,这是最简单的解决方案,以通过图像路径作为报表参数和设置此参数图片来源。 在Visual Studio中预览工作正常,但在执行的时候我在页面上看到此错误。
“NetworkError:404找不到- 服务器 /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, CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" preCondition="integratedMode"/></handlers></system.webServer>
这是一个MVC类型的问题? 谁能帮助这个好吗?
谢谢
我有同样的问题,但幸运的是我有水晶报表的一些经验。
你只需要改变的Web.config,因为“路径”属性设置为站点根目录。 如果你打开浏览器的URL,并从中取出ReportWebForms它将工作。
其实我刚加入2条配置的线路:
<system.web>
<httpHandlers>
<add verb="GET" path="CrystalImageHandler.aspx" type="CrystalDecisions.Web.CrystalImageHandler, CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" />
<!-- Added -->
<add verb="GET" path="Reports/CrystalImageHandler.aspx" type="CrystalDecisions.Web.CrystalImageHandler, CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, 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, CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" preCondition="integratedMode" />
<!-- Added -->
<add name="CrystalImageHandler.aspx_GETR" verb="GET" path="Reports/CrystalImageHandler.aspx" type="CrystalDecisions.Web.CrystalImageHandler, CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, 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。
在我来说,我只需要忽略MVC的routing.To添加到@Hovhannes solution.You应该添加此规则Routeconfig.cs
routes.IgnoreRoute("{*allaspx}", new { allaspx = @".*(CrystalImageHandler).*" });
回答:在RouteConfig.cs文件中添加这
routes.IgnoreRoute( “报告/ {资源}的.aspx / {*} PATHINFO”);
注:“报告”是其中包含水晶报表查看aspx页面的目录名称在这里输入图像描述
使用此代码CrystalImageHandler.aspx:
<%@ Page Language="C#" AutoEventWireup="true" %>
<script runat="server" language="c#" >
protected void Page_Load(object sender, EventArgs e)
{
CrystalDecisions.Web.CrystalImageHandler handler = new CrystalDecisions.Web.CrystalImageHandler();
handler.ProcessRequest(this.Context);
}
</script>