【问题标题】:Report Viewer Web Control Version 10 Gives Error Despite Set Up Correctly报告查看器 Web 控制版本 10 尽管设置正确但仍出现错误
【发布时间】:2011-11-21 17:52:00
【问题描述】:

报告已在报告管理器中部署和运行并进行验证。

我的应用程序是一个 MVC2 应用程序,我的报告在它自己的 aspx 页面上。此页面与报表查看器控件的版本 8 一起使用,但我们移至新服务器,升级了 sql server,并正在尝试更新我们的网站以匹配。

服务器是带有 IIS 7.5 的 Windows Server 2008。

我正在 chrome 和 IE 9 中进行测试。

尽管我尽了最大努力,我仍然收到此错误:

报告查看器配置错误

报告查看器 Web 控制 HTTP 处理程序尚未在 应用程序的 web.config 文件。将<add verb="*" path="Reserved.ReportViewerWebControl.axd" type = "Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 添加到system.web/httpHandlers web.config 文件的部分,或将 <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" /> 添加到 system.webServer/handlers Internet Information Services 7 或更高版本的部分。

但是,我已经这样做了。事实上,我什至从MSDN读到了这篇文章:

要在集成模式下使用 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>

我有程序集、构建提供程序和处理程序。还有什么问题?

【问题讨论】:

    标签: reporting-services iis-7.5 reportviewer report-viewer2010


    【解决方案1】:

    我找到了一个快速而肮脏的解决方法 - 在您的网络配置中添加以下内容:

    <location path="Reserved.ReportViewerWebControl.axd">
      <system.web>
        <authorization>
          <allow users="*" />
        </authorization>
      </system.web>
    </location>
    

    我在提琴手中看到,由于某种原因,当页面请求 Reserved.ReportViewerWebControl.axd 而不是获取 HTTP 200 响应时,服务器将发送 302 - 移至 login.aspx?returnurl="Reserved.ReportViewerWebControl.axd。因此允许所有用户处理程序路径解决了问题。

    【讨论】:

    • 这里漏掉了一个关键词……我希望乔希能确认这行得通! :)
    • 我无法确认此解决方案是否有效。我最终从我的应用程序中剥离了 SSRS 控件并制作了我自己的 html 版本。如果其他人有同样的问题并尝试了这个,你能评论你的结果吗?
    • 为我工作。虽然没有这个解决方案过去可以工作,但不确定发生了什么变化。
    • 这也为我做了。谁能解释发生了什么?我也没有改变我的解决方案。
    【解决方案2】:

    我认为它在 IIS7 上的 ReportViewer 渲染问题 我已经手动将我的 reportviewer 句柄映射到 IIS7,如下所示:

    •打开 Internet 信息服务 (IIS) 管理器并选择您的 Web 应用程序。

    •在 IIS 区域下,双击 Handler Mappings 图标。

    •在右侧的操作窗格中,单击添加托管处理程序。

    •在“添加托管处理程序”对话框中,输入以下内容:

    请求路径:Reserved.ReportViewerWebControl.axd

    类型:Microsoft.Reporting.WebForms.HttpHandler

    名称:Reserved-ReportViewerWebControl-axd

    •单击确定。

    也可以通过添加

    由 web config 更改


    我的还是不行。我认为上述解决方案会对其他人有所帮助。

    【讨论】:

    • 是的,这为我解决了问题(IIS7,Server 2008)
    【解决方案3】:

    我已经通过从 asp.net 项目中删除不需要的 mvc 程序集来尝试这个。所以简单的解决方案是从 web 项目的 Bin 文件夹中删除 WebMatrix.*.dll,因为它属于 mvc 框架。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-30
      • 2014-01-08
      • 2021-01-24
      • 2018-04-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多