我有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链接运行时,它会自动连接。
我想要实现的目标是:
答案 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。
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 - 重新启动报表服务器。