【问题标题】:SSRS 2012 Report Builder fails to run from remote host - 401 UnauthorizedSSRS 2012 Report Builder 无法从远程主机运行 - 401 Unauthorized
【发布时间】:2014-10-31 22:21:17
【问题描述】:

我有 SSRS 2012 本机模式。我可以从安装了 SSRS 的本地主机运行 Report Builder。 我无法从其他机器上运行报表生成器,并且出现这样的错误:

下载 http//10.149.100.*/ReportServer/ReportBuilder/ReportBuilder_3_0_0_0.application 没有成功。

远程服务器返回错误:(401) Unauthorized.

这是我的场景: SSRS 安装在工作组中的服务器上。该服务器上有本地用户,即。鲁瑟。 我正在使用地址 http//ssrs_server/Reports 从其他工作组/域中的其他计算机访问报告管理器,并且我正在传递 ruser 登录名和密码。我可以以这种方式运行每份报告。 但我无法使用报表管理器中的按钮运行报表生成器。

我已经试过这条指令http://msdn.microsoft.com/en-us/library/8faf2938-b71b-4e61-a172-46da2209ff55%28v=sql.110%29 我将基本身份验证设置为对报表生成器的匿名访问。 具体来说,我在启用对报表生成器应用程序文件的匿名访问部分中执行了从 1 到 6 的所有步骤。 唯一的结果是,在我单击 Report Builder 按钮后,我收到了 HTTP 500 错误,而不是 HTTP 401。

然后我发现我可以将 Report Builder 安装文件放在 IIS 上,并将自定义 url 设置为 Report Builder。我做到了,我终于可以从其他机器上运行报表生成器了。

唯一的问题是,当报表生成器从自定义 IIS URL 运行时,它不会自动连接到报表服务器。 但是,当它从默认 SSRS 链接运行时,它会自动连接。

我想要实现的是:

  • 要么使报表生成器可从默认 SSRS 链接运行
  • 要么使报表生成器可从自定义 IIS 链接运行(已经这样做了),要么使其自动连接到报表服务器。

【问题讨论】:

    标签: sql-server reporting-services reportbuilder3.0 ssrs-2012


    【解决方案1】:

    我找到了解决方案。 第一步是使用此指令启用基本身份验证:http://msdn.microsoft.com/en-us/library/8faf2938-b71b-4e61-a172-46da2209ff55%28v=sql.110%29

    但我省略了第 4 步。

    接下来我使用了这条指令:https://support.microsoft.com/kb/955809?wa=wsignin1.0 并执行方法 3 - 创建显式 Web.config 文件

    web.config文件需要保存在这个位置:C:\Program Files\Microsoft SQL Server\MSRS11.ATC\Reporting Services\ReportServer\ReportBuilder

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
      <system.web>
        <compilation tempDirectory="C:\Program Files\Microsoft SQL Server\MSRS11.ATC\Reporting Services\RSTempFiles\"/>
      </system.web>
    </configuration>
    

    【讨论】:

    • 基本身份验证的好解决方案:)
    【解决方案2】:

    因为 ReportingService 使用的是 Windows Authentication 。

    因此您不能使用 IP 地址来链接您的 ReportServer。

    我会建议在 ReportingService 中使用 Active Directory 环境。

    如果您使用普通工作组。你可以试试这个

    1.修改 C:\Windows\System32\drivers\etc 中的 hosts 文件。

    将主机名映射到 IP 。喜欢:win-4mheefkokk4 192.168.179.5

    2.更改您的 ReportBuilder 网址 从 http://192.168.179.5/ReportServer/ReportBuilder/ReportBuilder_3_0_0_0.application 到 http://win-4mheefkokk4/ReportServer/ReportBuilder/ReportBuilder_3_0_0_0.application

    然后您可以通过 ClickOnce 模式安装 ReportBuilder。希望对你有帮助:)

    【讨论】:

    • 它没有用。错误消息:+ 下载 rtics-atc1/ReportServer/ReportBuilder/… 未成功。 + 远程服务器返回错误:(401) Unauthorized.
    • @scar80 您的用户帐户需要执行 ReportBuilder 权限。尝试使用管理员帐户。顺便说一句,如果您使用 Basic Authentication ,用户帐户和密码将使用纯文本传输
    • 太棒了!只需使用域而不是 IP 就可以为我完成这项工作!
    【解决方案3】:

    SSRS 2012 的解决方案 - 逐步 IoI。

    https://docs.microsoft.com/en-us/previous-versions/sql/sql-server-2012/cc281309(v=sql.110)?redirectedfrom=MSDN

    1 - 通过检查示例下方的 RSReportServer.config 文件中的身份验证设置来验证报表服务器是否配置为基本身份验证:

    C:\Program Files\Microsoft SQL Server\MSRS11.MSSQLSERVER\Reporting Services\ReportServer\rsreportserver.config

    <Authentication>
        <AuthenticationTypes>
            <RSWindowsBasic>
                <LogonMethod>3</LogonMethod>
                <Realm></Realm>
                <DefaultDomain></DefaultDomain>
            </RSWindowsBasic>
        </AuthenticationTypes>
        <RSWindowsExtendedProtectionLevel>Off</RSWindowsExtendedProtectionLevel>
        <RSWindowsExtendedProtectionScenario>Proxy</RSWindowsExtendedProtectionScenario>
        <EnableAuthPersistence>true</EnableAuthPersistence>
    </Authentication>
    

    2 - 在 ReportBuilder 文件夹下创建一个 BIN 文件夹。默认情况下,此文件夹位于 \Program Files\Microsoft SQL Server\MSRS11.MSSQLSERVER\Reporting Services\ReportServer\ReportBuilder。

    3 - 从 ReportServer\Bin (C:\Program Files\Microsoft SQL Server\MSRS11.MSSQLSERVER\Reporting Services\ReportServer\bin) 文件夹复制以下程序集 到 ReportBuilder\BIN (C:\Program Files\Microsoft SQL Server\MSRS11.MSSQLSERVER\ReportingServices\ReportServer\ReportBuilder\bin) 文件夹:

    Microsoft.ReportingServices.Diagnostics.dll

    Microsoft.ReportingServices.Interfaces.dll

    ReportingServicesAppDomainManager.dll

    RSHttpRuntime.dll

    4- 创建一个 Web.config 文件以处理匿名帐户下的报表生成器请求: C:\Program Files\Microsoft SQL Server\MSRS11.MSSQLSERVER\Reporting Services\ReportServer\ReportBuilder\Web.config

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
    <system.web>
    <authentication mode="Windows" />  
    <identity impersonate="true "/>
    </system.web>
    </configuration>
    

    如果包含 Web.config 文件,则必须将身份验证模式设置为 Windows。

    身份模拟可以是真或假。

    如果您不希望 ASP.NET 读取安全令牌,请将其设置为 False。该请求将在报表服务器服务的安全上下文中运行。

    如果您希望 ASP.NET 从主机层读取安全令牌,请将其设置为 True。如果将其设置为 True,则还必须指定用户名和密码以指定匿名帐户。您指定的凭据将确定发出请求的安全上下文。

    5 - 将 Web.config 文件保存到 ReportBuilder\bin 文件夹。

    6 - 打开 RSReportServer.config 文件 (C:\Program Files\Microsoft SQL Server\MSRS11.MSSQLSERVER\Reporting Services\ReportServer\rsreportserver.config),在 Services 部分,找到 IsReportManagerEnabled 并在其下方添加以下设置:

    <IsReportManagerEnabled>True</IsReportManagerEnabled>
        <IsReportBuilderAnonymousAccessEnabled>True</IsReportBuilderAnonymousAccessEnabled>
    

    7 - 保存 RSReportServer.config 并关闭文件。

    8 - 重新启动报表服务器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-29
      • 2015-09-20
      • 1970-01-01
      • 2018-12-04
      • 1970-01-01
      • 1970-01-01
      • 2016-03-05
      • 2016-08-03
      相关资源
      最近更新 更多