【问题标题】:ReportViewer 10.0 on IIS 7.5 not renderingIIS 7.5 上的 ReportViewer 10.0 未呈现
【发布时间】:2011-08-03 04:20:52
【问题描述】:

我们正在尝试将报表从 Visual 2008 迁移到 Visual 2010,但我们无法使 ASP.NET ReportViewer 控件在我们的 IIS 7.5 机器上工作。操作系统是 Windows 7。

我们已将代码和配置文件中的所有引用移至 Microsoft.Reporting.WebForms 10.0。我们的 Web.config 文件是关于 ReportViewer 的以下部分:

  <system.web>
    <httpHandlers>
      <add path="Reserved.ReportViewerWebControl.axd" verb="*" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
        validate="false" />
    </httpHandlers>
    <hostingEnvironment shutdownTimeout="30" shadowCopyBinAssemblies="false" />
    <compilation debug="true" targetFramework="4.0">
      <assemblies>
        <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" />
        <add assembly="Microsoft.Build.Framework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
        <add assembly="System.Management, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
        <add assembly="CrystalDecisions.Web, Version=10.5.3700.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
        <add assembly="CrystalDecisions.Shared, Version=10.5.3700.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
        <add assembly="CrystalDecisions.ReportSource, Version=10.5.3700.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
        <add assembly="CrystalDecisions.CrystalReports.Engine, Version=10.5.3700.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
      </assemblies>
      <buildProviders>
        <add extension=".rdlc" type="Microsoft.Reporting.RdlBuildProvider, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
       </buildProviders>
    </compilation>
    <authentication mode="Windows" />
    <pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID" />
    <httpRuntime requestValidationMode="2.0" />
  </system.web>

  <system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
    <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" />
      <add verb="GET" name ="CrystalImageHandler" path="CrystalImageHandler.aspx" type="CrystalDecisions.Web.CrystalImageHandler, CrystalDecisions.Web, Version=10.5.3700.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/>
    </handlers>
    <security>
      <requestFiltering>
        <requestLimits  maxAllowedContentLength="4294967295" />
      </requestFiltering>
    </security>
  </system.webServer>

当加载包含 ReportViewer 控件的 aspx 时,我们只看到报告查看器的工具栏,页面的其余部分是空白的。该页面的源代码告诉以下内容:

报表查看器 Web 控件 HTTP 处理程序尚未注册 应用程序的 web.config 文件。添加 到 system.web/httpHandlers 部分 web.config 文件,或添加到 system.webServer/handlers 部分 对于 Internet Information Services 7 或 稍后。

我们知道 ReportViewer 10.0 不能在经典模式下工作,因此应用程序池配置为集成。我们已尝试从 system.web 中删除句柄部分,但没有成功。

任何人都可以告诉我们如何通过 IIS 7.5 使用 Report Viewer 10.0 获得 ASP.NET 应用程序的工作配置?

非常感谢。

何塞·安东尼奥·阿罗巴

【问题讨论】:

  • 你在哪个浏览器上测试这个?

标签: asp.net iis reportviewer


【解决方案1】:

当我们将网页从 IIS6.0 移动到 IIS7.5 时,我们遇到了类似的问题,我们不得不将我们的 httpH andlers 从中移动以查看下面的代码示例

<defaultDocument>

  <files>
    <add value="home.aspx" />
  </files>

</defaultDocument>

<modules>
  <add name="AccessDeniedModule" type="Senate.Leagis.Web.Common.Handlers.AccessDeniedModule, Senate.Leagis.Web, Culture=neutral, PublicKeyToken=132b49799d170825" />
</modules>

<handlers>
  <add name="ReportViewerWebControlHandler" preCondition="integratedMode" verb="*" path="Reserved.ReportViewerWebControl.axd" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</handlers>

【讨论】:

    【解决方案2】:

    今天早上遇到了同样的问题。看起来您的 web.config 处理程序很好。提示:如果您需要知道它们不好,请尝试使用 chrome 查看。它倾向于向我显示错误消息 IE 不是。无论如何,我通过向我的 IIS7.5 添加 HTTP 处理程序解决了我的问题。在 IIS 管理器中,转到处理程序映射并注册处理程序。请求路径:Reserved.ReportViewerWebControl.axd,输入选择正确的版本,点击Request Restrictions,指定“以下动词之一”为GET,HEAD,发布,调试 你可能会发现here 的结尾部分很有用

    【讨论】:

    • 回答有点晚了,但问题是我们最终决定将我们的报告平台从 Reporting Services 更改为 Telerik。现在我无法测试您的建议,但每当我再次遇到需要低级 HTML 调试的另一个问题时,我会听从您的建议并使用 Chrome。谢谢!
    【解决方案3】:

    尝试添加

    <configuration>
    <system.webServer>
    <handlers>    
    <add name="Reserved-ReportViewerWebControl-axd" path="Reserved.ReportViewerWebControl.axd" verb="*" type="Microsoft.Reporting.WebForms.HttpHandler" resourceType="Unspecified" />
    .......
    

    web.config

    Source

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-19
      • 2015-12-30
      • 1970-01-01
      • 1970-01-01
      • 2012-12-17
      • 2011-01-23
      • 1970-01-01
      相关资源
      最近更新 更多