【问题标题】:SSRS error message: The request failed with HTTP status 400: Bad RequestSSRS 错误消息:请求失败,HTTP 状态 400:错误请求
【发布时间】:2013-07-21 12:05:56
【问题描述】:

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

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

我从 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>

【问题讨论】:

    标签: reporting-services ssrs-2012


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      您可能有权访问具有正确权限的文件夹(或报告项本身),而不是目录。一般直接去SSRS Server查看目录的权限:

      http: (servername)/Reports
      

      单击“文件夹设置”,然后应该会出现安全性。如果您希望连接的根目录不弹出错误,则应在此处添加相关用户。一般来说,SSRS可以是item config set、子item的目录(也可能是多个目录)、root directory set。除非您在代码后面或配置中指定其他起点,否则在代码中连接到 SSRS 时,主登录页面通常是上面显示的点。

      【讨论】:

      • 谢谢,我们可以调查一下,但您知道为什么单独升级到最新版本会导致这个问题吗?
      • 我不确定为什么会发生这种情况,因为大多数时候升级都带有策略设置。我只是从您所描述的内容中知道,听起来父对象的权限不同。这可能是网络表单改变处理的方式,我不确定。我只知道访问是 SSRS 的一个常见问题,无论前端进行什么调用。
      猜你喜欢
      • 2015-04-10
      • 2019-09-13
      • 2017-09-07
      • 2022-10-02
      • 2020-10-21
      • 1970-01-01
      • 2018-08-09
      • 2023-01-25
      • 1970-01-01
      相关资源
      最近更新 更多