Jos*_*osh 11 reportviewer reporting-services iis-7.5 report-viewer2010
报告已部署并正常运行,在报告管理器中进行验证
我的应用程序是一个MVC2应用程序,我的报告在自己的aspx页面上.此页面与报表查看器控件的版本8一起使用,但我们移动到新服务器,升级了sql server,并且正在尝试更新我们的网站以匹配.
服务器是带有IIS 7.5的Windows Server 2008.
我正在测试chrome和IE 9.
尽管我付出了最大努力,但仍然会收到此错误:
报告查看器配置错误
报表查看器Web控件HTTP处理程序尚未在应用程序的web.config文件中注册.添加
<add verb="*" path="Reserved.ReportViewerWebControl.axd" type = "Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
到web.config文件的system.web/httpHandlers部分,或添加<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" />
到Internet Information Services 7或更高版本的system.webServer/handlers部分.
但是,我已经做到了这一点.事实上,我甚至从MSDN上读到了这个:
要在集成模式下使用IIS 7.0,必须删除system.web/httpHandlers中的HTTP处理程序.否则,IIS将不会运行该应用程序,但会显示错误消息.
为了安全起见,我尝试了直接将处理程序添加到IIS中的组合,只是我的配置中的Web服务器http处理程序,只是我的配置中的http处理程序,以及两者.
让我们从我的web.config开始
<configuration
<system.web>
<httpRuntime maxQueryStringLength="4096" />
<compilation targetFramework="4.0">
<assemblies>
<add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<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>
<buildProviders>
<add extension=".rdlc" type="Microsoft.Reporting.RdlBuildProvider, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</buildProviders>
</compilation>
</system.web>
<system.webServer>
<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" />
</handlers>
</system.webServer>
</configuration>
Run Code Online (Sandbox Code Playgroud)
我有程序集,构建提供程序和处理程序.还有什么可能是错的?
我找到了一个快速而又脏的解决方法 - 在你的web配置中添加:
<location path="Reserved.ReportViewerWebControl.axd">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
Run Code Online (Sandbox Code Playgroud)
我在小提琴手看到,因为当页面请求,而不是让HTTP 200响应服务器会发出302 Reserved.ReportViewerWebControl.axd某种原因 - 移动到login.aspx的RETURNURL ="Reserved.ReportViewerWebControl.axd所以允许用户将所有的处理程序路径?解决了这个问题.
归档时间: |
|
查看次数: |
20980 次 |
最近记录: |