SSRS错误消息:请求失败,HTTP状态为400:错误请求

时间:2013-07-22 16:39:56

标签: reporting-services ssrs-2012

管理员通过为我添加Report Viewer 2012来更新开发和测试服务器。

我无法访问测试服务器,但我是dev服务器上的管理员。我可以与拥有测试服务器管理员权限的人合作,但我需要知道要查找的内容。

从Visual Studio 2012部署的我的SSRS报告已从10.0版转换为Microsoft.ReportViewer.WebForms 11.0。

这些报告只能在我的开发服务器上找到,但是当我的QA测试人员使用该报告时,页面第一次显示错误“请求失败并显示HTTP状态400:错误请求”。

请注意,默认情况下不会加载任何报告。

我们请求报告后,此报告会正确显示,错误消息会消失。

我正在尝试删除此初始错误消息,因为它让最终用户感到困惑。

有人有任何想法吗?

提前致谢!

以下是开发人员工具显示的代码。

<DIV id=ctl00_Body_ReportViewer1_ctl09_VisibilityState ForNonReportContentArea="true" NewContentType="Microsoft.Reporting.WebFormsClient.ReportAreaContent.Error"><INPUT name=ctl00$Body$ReportViewer1$ctl09$VisibilityState$ctl00 value=Error type=hidden> </DIV><INPUT id=ctl00_Body_ReportViewer1_ctl09_ScrollPosition name=ctl00$Body$ReportViewer1$ctl09$ScrollPosition value="0 0" type=hidden><SPAN id=ctl00_Body_ReportViewer1_ctl09_Reserved_AsyncLoadTarget></SPAN>
<DIV style="DISPLAY: none" id=ctl00_Body_ReportViewer1_ctl09_ReportControl><SPAN></SPAN><INPUT name=ctl00$Body$ReportViewer1$ctl09$ReportControl$ctl02 type=hidden><INPUT name=ctl00$Body$ReportViewer1$ctl09$ReportControl$ctl03 type=hidden><INPUT id=ctl00_Body_ReportViewer1_ctl09_ReportControl_ctl04 name=ctl00$Body$ReportViewer1$ctl09$ReportControl$ctl04 value=100 type=hidden> </DIV>
<DIV style="WIDTH: 100%; HEIGHT: 100%" id=ctl00_Body_ReportViewer1_ctl09_NonReportContent>
<DIV style="FONT-FAMILY: Verdana; FONT-SIZE: 8pt">
<UL>
<LI style="DISPLAY: inline">The request failed with HTTP status 400: Bad Request.</LI></UL></DIV></DIV>

这是aspx文件中的代码:

 <asp:UpdatePanel ID="TFD_UP" runat="server">
     <ContentTemplate>
      <rsweb:ReportViewer ID="ReportViewer1" runat="server" Font-Names="Verdana" Font-Size="8pt"
          ProcessingMode="Remote" Height="100%" Width="100%" PromptAreaCollapsed="True"
          ShowParameterPrompts="False" ShowPromptAreaButton="False" 
           ShowBackButton="False" ShowFindControls="False" ShowPrintButton="False" 
          ShowRefreshButton="False" ShowZoomControl="False"
         ></rsweb:ReportViewer>
       <rsweb:ReportViewer runat="server"></rsweb:ReportViewer>
  <Triggers>
       <asp:AsyncPostBackTrigger ControlID="btnClick" EventName="Click" />
   </Triggers>
   </asp:UpdatePanel>

2 个答案:

答案 0 :(得分:1)

长话短说,将2008年的解决方案升级到2013年,最初部署得很好,然后开始部署除了两个报告以外的所有报告。跟踪Fiddler中的服务调用显示了数据源密码字段中的垃圾。一旦我在每个失败的报告的数据源上重新输入密码,错误就会消失。

答案 1 :(得分:0)

您可能有权访问具有正确权限的文件夹(或报表项本身),而不能访问目录。通过直接转到SSRS服务器来检查目录的权限:

http: (servername)/Reports

点击“文件夹设置”,然后会出现安全问题。如果您希望连接的根目录不弹出错误,则应在此处添加相关用户。一般而言,SSRS可以是项目配置集,子项目目录(也可以是更多目录)或根目录集。通常在将代码连接到SSRS时,主要登录页面是上面显示的点,除非您在代码后面指定或配置一些其他起点。