IIS 7.5上的ReportViewer 10.0无法呈现

时间:2011-04-11 15:32:12

标签: asp.net iis reportviewer

我们正在尝试将报表从Visual 2008转移到Visual 2010,但我们无法在IIS 7.5计算机上使ASP.NET ReportViewer控件工作。操作系统是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控件HTTP   Handler尚未注册   应用程序的web.config文件。加    至   system.web / httpHandlers部分   web.config文件,或添加到   system.webServer / handlers部分   用于Internet信息服务7或   后面。

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

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

非常感谢提前。

Jose Antonio Arroba

3 个答案:

答案 0 :(得分:3)

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

<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 :(得分:1)

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

答案 2 :(得分:0)

尝试添加

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

中的

Source