MVC集成SSRS(.rdl)报错:需注册WebResource.axd处理程序
解决MVC集成SSRS时WebResource.axd未注册的报错
我之前在MVC项目里集成SSRS报表时也踩过这个坑,给你几个实际有效的排查和解决步骤:
检查IIS模式对应的配置节点
如果你的项目用的是IIS7及以上的集成模式,仅在<system.web>里配置<httpHandlers>是不够的,需要在<system.webServer>的<handlers>节点也添加注册:<system.webServer> <handlers> <add name="WebResourceaxd" path="WebResource.axd" verb="GET" type="System.Web.Handlers.AssemblyResourceLoader" preCondition="integratedMode" /> </handlers> </system.webServer>建议同时保留
<system.web>下的旧配置,兼容经典模式的场景。排除MVC路由对WebResource.axd的拦截
MVC的路由规则可能会把WebResource.axd误识别为控制器请求,需要在RouteConfig.cs里添加忽略规则,而且要放在所有路由规则的最前面:routes.IgnoreRoute("{resource}.axd/{*pathInfo}");验证ReportViewer组件版本兼容性
确认你安装的Microsoft.Report.View系列组件版本和项目的.NET Framework版本完全匹配,比如.NET 4.6对应ReportViewer 12.0,版本不匹配会导致资源加载异常。清理缓存并重新生成项目
删除项目的bin和obj文件夹,清理IIS临时文件(路径一般是C:\Windows\Microsoft.NET\Framework\vX.X.XXXXX\Temporary ASP.NET Files),然后重新生成解决方案,有时候缓存的旧文件会引发这类奇怪的报错。
内容的提问来源于stack exchange,提问作者Irfan TahirKheli
相关产品推荐
相关产品推荐

