C# 如何解决VS 2010 ASP.Net ReportViewer HttpHandler注册错误?
这让我抓狂——我有一个web应用程序,它的ReportViewer版本10可以毫无问题地显示现有报告。我们正在扩展该网站,我已经基于第二个本地业务对象创建了一个新的报告,我们正在与NetSuite web服务集成。页面加载并请求数据,数据会很好地传回-但是,在尝试创建ReportViewer实例时,页面在生成的标记中引发异常: Microsoft JScript运行时错误:“Microsoft”未定义 单击“继续”将加载包含错误文本的页面:C# 如何解决VS 2010 ASP.Net ReportViewer HttpHandler注册错误?,c#,asp.net,reportviewer,C#,Asp.net,Reportviewer,这让我抓狂——我有一个web应用程序,它的ReportViewer版本10可以毫无问题地显示现有报告。我们正在扩展该网站,我已经基于第二个本地业务对象创建了一个新的报告,我们正在与NetSuite web服务集成。页面加载并请求数据,数据会很好地传回-但是,在尝试创建ReportViewer实例时,页面在生成的标记中引发异常: Microsoft JScript运行时错误:“Microsoft”未定义 单击“继续”将加载包含错误文本的页面: The Report Viewer Web Contr
The Report Viewer Web Control HTTP Handler has not been registered in the application's web.config file. Add <add verb="*" path="Reserved.ReportViewerWebControl.axd" type = "Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> to the system.web/httpHandlers section of the web.config file, or add <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" /> to the system.webServer/handlers section for Internet Information Services 7 or later.
我正在使用VS ASP.Net运行时服务器运行此本地主机。显然,如果我的web配置不正确,第一个报表查看器将无法加载其报表,因此不可能是这样
我确实成功地加载了第二个报告,但随后的多次尝试都导致了上述情况。我试着删除新页面上的报告,并从原始页面复制一个有效的报告,指向它的报告/数据源,我得到了相同的结果。莫名其妙 我相信您确实需要将密钥添加到web.config文件中。您还需要在包含报表查看器的aspx文件中添加对ReportView组件的引用。Web.config应该类似于
<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" />
</assemblies>
<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>
Aspx文件应该在html的顶部附近有
<%@ Register Assembly="Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
Namespace="Microsoft.Reporting.WebForms" TagPrefix="rsweb" %>
谢谢,迈克,我在网络配置和新页面上都有这些。似乎添加一个带有另一个reportviewer的新表单会产生异常 VS2010中的开发服务器可能有问题?我将尝试在IIS localhost中运行,看看是否有区别
Michael我遇到了这个问题,我高度怀疑它是可以解决的。我所做的是使用Version=9.0.0.0,它似乎很容易工作。但是,由于在更改报告文件时必须编辑XML或使用VS2008,因此非常繁忙。我找到了解决方案: 由于我使用的是集成管道模式,因此必须将以下内容添加到根web.config中:
<system.webServer>
<handlers>
<add name="ReportViewer"
path="Reserved.ReportViewerWebControl.axd"
verb="*"
type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</handlers>
</system.webServer>
请注意,配置在system.webServer下,而不是system.web下
希望有帮助。您必须将处理程序添加到system.webserver for iis 7及更高版本,如报表查看器错误消息中所述