Asp.net MVC ReportViewer,IIS 7 问题

Posted

技术标签:

【中文标题】Asp.net MVC ReportViewer,IIS 7 问题【英文标题】:Asp.net MVC ReportViewer ,IIS 7 issue 【发布时间】:2012-02-26 04:04:05 【问题描述】:

我使用asp.net mvc 2,添加了带有reportviewer控件的webform。

web.config 文件看起来

     <add verb="*" path="Reserved.ReportViewerWebControl.axd" type = "Microsoft.Reporting`enter code here`.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b0`enter code here`3f5f7f11d50a3a" />

    <add extension=".rdlc" type="Microsoft.Reporting.RdlBuildProvider, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />

  <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 name="Reserved.ReportViewerWebControl.axd" path="Reserved.ReportViewerWebControl.axd" verb="*" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" resourceType="Unspecified" requireAccess="Script" preCondition="integratedMode" />

IIS 配置为链接

http://otkfounder.blogspot.com/2007/11/solving-reportviewer-rendering-issue-on.html

但我仍然有错误

报告查看器配置错误

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

【问题讨论】:

【参考方案1】:

这就是我们所拥有的 - 它应该同时支持 IIS 6 和 IIS7+ 我认为您参考了 Reserved.ReportViewerWebControl.axd(Reporting Services 2005)的 v9

<system.web>
    <compilation debug="true" targetFramework="4.0">
        <assemblies>
                                <etc />
            <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>
                        <!-- Edit Unsure as to whether this is needed, or should be Microsoft.ReportViewer.Webforms. Was upgraded from RDLC v9 -->
        <buildProviders>
            <add extension=".rdlc" type="Microsoft.Reporting.RdlBuildProvider, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
        </buildProviders>
    </compilation>


    <!-- NB : The below is for earlier IIS -->
    <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="true"/>
    </httpHandlers>

</system.web>
<system.webServer>
    <!-- NB : The below is for IIS 6+ W2008 Server / Vista -->
    <handlers>
        <add name="Reserved-ReportViewerWebControl-axd" path="Reserved.ReportViewerWebControl.axd" verb="*" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" resourceType="Unspecified" preCondition="integratedMode"/>
    </handlers>
</system.webServer>

编辑:请注意,从 v10 开始,RdlBuildProvider 现在位于 Microsoft.ReportViewer.WebForms 中,而不是 Microsoft.ReportViewer.Common 中

【讨论】:

错误 8 无法从程序集“Microsoft.ReportViewer.Common, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”加载类型“Microsoft.Reporting.RdlBuildProvider”。 看起来 buildprovider 要么不再需要(注释掉),要么现在在 WebForms.dll 中 - 请参阅 social.msdn.microsoft.com/Forums/en-US/sqlreportingservices/…。请注意,如果您有使用旧版本编写的报告,升级它们可能会出现问题。 我不知道该怎么做不起作用我都活着尝试了。请帮助 mija 我会发疯的 @IvanIvan,你是怎么解决这个问题的?是 StuartLC 一个人的帖子吗?我在 Arvixe 托管并遇到此问题,无法解决。谢谢。

以上是关于Asp.net MVC ReportViewer,IIS 7 问题的主要内容,如果未能解决你的问题,请参考以下文章

如何在 reportviewer 控件上从 asp.net 调用打印?

C# + asp.Net + 自定义 Sybase SessionState 提供程序 + ReportViewer = 一些报告崩溃

ASP.NET的reportViewer控件显示问题

通过 ASP.Net s-s-rS ReportViewer 呈现后更改 Excel 中的行高

在另一个线程上渲染 ReportViewer

ReportViewer技巧汇总