IIS 7.5上的ReportViewer 10.0无法渲染。

4
我们正在尝试将报告从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页面时,我们只看到Report Viewer工具栏,其余页面为空白。该页面的源代码显示如下:
“应用程序的web.config文件中未注册Report Viewer Web Control HTTP处理程序。将其添加到web.config文件的system.web/httpHandlers部分,或将其添加到Internet Information Services 7或更高版本的system.webServer/handlers部分。”
我们知道,ReportViewer 10.0不支持经典模式,因此应用程序池配置为集成模式。我们尝试从system.web中删除handles部分,但没有成功。
有谁能给我们一个在IIS 7.5上使用Report Viewer 10.0的ASP.NET应用程序的可行配置线索吗?
非常感谢。

你在哪个浏览器上测试这个? - melaos
3个回答

3
我们在将网页从IIS6.0迁移到IIS7.5时遇到了类似的问题,我们不得不将我们的httpHandlers从移动到,请参考以下代码示例。
<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>


1
今天早上我遇到了同样的问题。看起来你的web.config处理程序没问题。提示:如果你需要知道它们不好,试着用Chrome查看。它往往会显示IE没有的错误消息。无论如何,我通过向我的IIS7.5添加HTTP-Handler解决了我的问题。在IIS管理器中,转到处理程序映射并注册处理程序。请求路径:Reserved.ReportViewerWebControl.axd,类型选择正确的版本,单击请求限制并指定“以下动词之一”为GET、HEAD、POST、DEBUG。你可能会发现这里的结尾部分有用。

有些晚了来回答,但我们最终决定将报告平台从Reporting Services更改为Telerik。现在我无法测试你的建议,但每当我再次遇到需要低级HTML调试的问题时,我会遵循你的建议并使用Chrome。谢谢! - Jose Antonio

0

尝试添加

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

web.config 文件中

源代码


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接