SSRS 2012报表生成器无法从远程主机运行 - 401未经授权

时间:2014-10-31 22:21:18

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

我有SSRS 2012原生模式。我可以从安装了SSRS的localhost运行Report Builder。 我无法从其他计算机运行Report Builder,我收到了这样的错误:

  

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

     

远程服务器返回错误:(401)未经授权。

这是我的情景: SSRS安装在工作组中的服务器上。该服务器上有本地用户,即。 RUSER。 我正在使用地址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。

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

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

我想要实现的目标是:

  • 使报表生成器可以从默认SSRS链接
  • 运行
  • 使报表生成器可以从自定义IIS链接(已经完成)运行,但也可以自动连接到报表服务器。

3 个答案:

答案 0 :(得分:2)

我找到了解决方案。 第一步是使用以下指令启用基本身份验证: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>

答案 1 :(得分:0)

因为ReportingService使用Windows身份验证。

因此您无法使用IP地址链接ReportServer。

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

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

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

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

2.更改ReportBuilder URL 从 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。希望它可以帮助你:))

答案 2 :(得分:0)

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 文件以在匿名帐户下处理 Report Builder 请求: 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),在服务部分,找到 IsReportManagerEnabled 并在其下方添加以下设置:

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

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

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