Reporting services 尽管设置正确,报表查看器Web控件版本10仍出现错误

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文件。添加: 要在集成模式下

报表在报表管理器中部署并运行、验证

我的应用程序是一个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)