Reporting services 尽管设置正确,报表查看器Web控件版本10仍出现错误
报表在报表管理器中部署并运行、验证 我的应用程序是一个MVC2应用程序,我的报告位于自己的aspx页面上。此页面使用了报表查看器控件的版本8,但我们已转移到新服务器,升级了sql server,并正在尝试更新我们的网站以匹配 服务器是带有IIS 7.5的Windows Server 2008 我正在测试chrome和IE 9 尽管我尽了最大的努力,我还是犯了这个错误: 报表查看器配置错误 报表查看器Web控件HTTP处理程序尚未在中注册 应用程序的web.config文件。添加Reporting services 尽管设置正确,报表查看器Web控件版本10仍出现错误,reporting-services,iis-7.5,reportviewer,report-viewer2010,Reporting Services,Iis 7.5,Reportviewer,Report Viewer2010,报表在报表管理器中部署并运行、验证 我的应用程序是一个MVC2应用程序,我的报告位于自己的aspx页面上。此页面使用了报表查看器控件的版本8,但我们已转移到新服务器,升级了sql server,并正在尝试更新我们的网站以匹配 服务器是带有IIS 7.5的Windows Server 2008 我正在测试chrome和IE 9 尽管我尽了最大的努力,我还是犯了这个错误: 报表查看器配置错误 报表查看器Web控件HTTP处理程序尚未在中注册 应用程序的web.config文件。添加: 要在集成模式下
:
要在集成模式下使用IIS 7.0,必须删除system.web/httpHandlers中的HTTP处理程序。否则,IIS将不运行应用程序,而是显示一条错误消息
为了安全起见,在将处理程序直接添加到IIS时,我尝试了两者的组合:配置中的web服务器http处理程序,配置中的http处理程序,以及两者
让我们从我的web.config开始
<configuration
<system.web>
<httpRuntime maxQueryStringLength="4096" />
<compilation targetFramework="4.0">
<assemblies>
<add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
<add assembly="Microsoft.ReportViewer.Common, Version=10.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
</assemblies>
<buildProviders>
<add extension=".rdlc" type="Microsoft.Reporting.RdlBuildProvider, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</buildProviders>
</compilation>
</system.web>
<system.webServer>
<handlers>
<add name="ReportViewerWebControlHandler" preCondition="integratedMode" verb="*" path="Reserved.ReportViewerWebControl.axd" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</handlers>
</system.webServer>
</configuration>
我发现了一个快速而肮脏的解决方法-在您的web配置中添加以下内容:
<location path="Reserved.ReportViewerWebControl.axd">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
我在fiddler中看到,由于某种原因,当页面请求Reserved.ReportViewerWebControl.axd而不是获取HTTP 200响应时,服务器将发送302-移动到login.aspx?returnurl=“Reserved.ReportViewerWebControl.axd”。因此,允许所有用户访问处理程序路径可以解决问题。我认为它在IIS7上的ReportViewer呈现问题
我已手动将reportviewer句柄映射到IIS7,如下所示:
•打开Internet信息服务(IIS)管理器并选择您的Web应用程序
•在IIS区域下,双击处理程序映射图标
•在右侧的操作窗格中,单击添加托管处理程序
•在“添加托管处理程序”对话框中,输入以下内容:
请求路径:Reserved.ReportViewerWebControl.axd
类型:Microsoft.Reporting.WebForms.HttpHandler
名称:保留报表ViewerWebControl axd
•单击“确定”
还通过添加
我的仍然不起作用。我认为上面的解决方案会帮助其他人。我尝试从asp.net项目中删除不需要的mvc程序集。因此简单的解决方案是从web项目中的Bin文件夹中删除WebMatrix.*.dll,因为它属于mvc框架。漏掉了一个关键词……我希望josh会irm this works!:)我无法确认此解决方案是否有效。我最终将SSRS控件从我的应用程序中剥离出来,并制作了自己的html版本。如果其他人也有同样的问题并尝试了此操作,您能否对您的结果进行评论?对我有效。虽然解决方案过去没有此功能,但不确定更改了什么。这是为了我也是。有人能解释发生了什么吗?我也没有改变我的解决方案。是的,这为我解决了问题(IIS7,Server 2008)