SSRS 2008 R2,服务器场 - 负载均衡和HTTP状态401:未经授权

时间:2015-08-20 11:35:40

标签: security powershell reporting-services load-balancing server-farm

我的公司有SQL Server Reporting Services 2008 R2环境。

2台服务器Windows 2008 R2: PRERPSW01和PRERPSW02 ,位于域 DOMAIN_Company NLB名称: PRERPS

IP地址(我通过ping命令获得):

PRERPSW01   192.168.110.41
prerps      192.168.90.92

在PRERPSW01服务器中托管文件

192.168.110.41  prerps

PRERPSW01和PRERPSW02 服务器中,有以下配置:

Config Report Server: C:\Program Files\Microsoft SQL Server\MSRS10_50.REPORTING\Reporting Services\ReportServer\rsreportserver.config
HostName: PRERPS. 
UrlRoot: http://PRERPS/ReportServer

PRERPSW01 中,我使用凭据PRERPSW01\installerUser

使用http://PRERPS/ReportServer/ReportService2005.asmx打开IE,我无法访问

使用http://PRERPSW01/ReportServer/ReportService2005.asmx打开IE,我可以访问

我有Poweshell脚本来使用URI http://PRERPS/ReportServer/ReportService2005.asmx

部署RDL文件

但是我收到了错误

请求失败,HTTP状态为401:未经授权

在我的电脑中,凭据 DOMAIN_Company \ My_user

使用http://PRECASRPS/ReportServer/ReportService2005.asmx打开IE,我可以访问

有什么建议吗?

更新

现在,我使用凭据DOMAIN_Company\PreRPSAdministrator。 rsreportserver.config的相同配置。

PRERPSW01 中的测试正常 PRERPSW02 中的测试是 KO

记录_ReportServerService__09_22_2015_13_58_31.log_ PRERPSW02 测试:

library!WindowsService_0!9cc!09/22/2015-14:38:48:: i INFO: Call to CleanBatch()
library!WindowsService_0!9cc!09/22/2015-14:38:48:: i INFO: Cleaned 0 batch records, 0 policies, 0 sessions, 0 cache entries, 0 snapshots, 0 chunks, 0 running jobs, 0 persisted streams, 0 segments, 0 segment mappings, 0 edit sessions.
library!WindowsService_0!9cc!09/22/2015-14:38:48:: i INFO: Call to CleanBatch() ends
ui!ReportManager_0-1!fa8!09/22/2015-14:39:44:: e ERROR: System.Net.WebException: The request failed with HTTP status 401: Unauthorized.
   at Microsoft.SqlServer.ReportingServices2010.RSConnection2010.SetConnectionProtocol()
   at Microsoft.SqlServer.ReportingServices2010.RSConnection2010.SoapMethodWrapper`1.ExecuteMethod(Boolean setConnectionProtocol)
   at Microsoft.SqlServer.ReportingServices2010.RSConnection2010.SoapMethodWrapper`1.ExecuteMethod()
   at Microsoft.SqlServer.ReportingServices2010.RSConnection2010.ListItemTypes()
   at Microsoft.ReportingServices.UI.Global.SecureAllAPI()
   at Microsoft.ReportingServices.UI.GlobalLinks.Control_Init(Object sender, EventArgs args)
ui!ReportManager_0-1!fa8!09/22/2015-14:39:44:: e ERROR: HTTP status code --> 500
-------Details--------
System.Net.WebException: The request failed with HTTP status 401: Unauthorized.

   at Microsoft.SqlServer.ReportingServices2010.RSConnection2010.SetConnectionProtocol()

   at Microsoft.SqlServer.ReportingServices2010.RSConnection2010.SoapMethodWrapper`1.ExecuteMethod(Boolean setConnectionProtocol)

   at Microsoft.SqlServer.ReportingServices2010.RSConnection2010.SoapMethodWrapper`1.ExecuteMethod()

   at Microsoft.SqlServer.ReportingServices2010.RSConnection2010.ListItemTypes()

   at Microsoft.ReportingServices.UI.Global.SecureAllAPI()

   at Microsoft.ReportingServices.UI.ReportingPage.EnsureHttpsLevel()

   at Microsoft.ReportingServices.UI.ReportingPage.ReportingPage_Init(Object sender, EventArgs args)

   at System.EventHandler.Invoke(Object sender, EventArgs e)

   at System.Web.UI.Control.OnInit(EventArgs e)

   at System.Web.UI.Page.OnInit(EventArgs e)

   at System.Web.UI.Control.InitRecursive(Control namingContainer)

   at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
ui!ReportManager_0-1!e70!09/22/2015-14:39:50:: e ERROR: System.Net.WebException: The request failed with HTTP status 401: Unauthorized.
   at Microsoft.SqlServer.ReportingServices2010.RSConnection2010.SetConnectionProtocol()
   at Microsoft.SqlServer.ReportingServices2010.RSConnection2010.SoapMethodWrapper`1.ExecuteMethod(Boolean setConnectionProtocol)
   at Microsoft.SqlServer.ReportingServices2010.RSConnection2010.SoapMethodWrapper`1.ExecuteMethod()
   at Microsoft.SqlServer.ReportingServices2010.RSConnection2010.ListItemTypes()
   at Microsoft.ReportingServices.UI.Global.SecureAllAPI()
   at Microsoft.ReportingServices.UI.ReportingPage.EnsureHttpsLevel()
   at Microsoft.ReportingServices.UI.ReportingPage.ReportingPage_Init(Object sender, EventArgs args)
   at System.EventHandler.Invoke(Object sender, EventArgs e)
   at System.Web.UI.Control.OnInit(EventArgs e)
   at System.Web.UI.Page.OnInit(EventArgs e)
   at System.Web.UI.Control.InitRecursive(Control namingContainer)
   at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
ui!ReportManager_0-1!c4c!09/22/2015-14:39:51:: e ERROR: System.Net.WebException: The request failed with HTTP status 401: Unauthorized.
   at Microsoft.SqlServer.ReportingServices2010.RSConnection2010.SetConnectionProtocol()
   at Microsoft.SqlServer.ReportingServices2010.RSConnection2010.SoapMethodWrapper`1.ExecuteMethod(Boolean setConnectionProtocol)
   at Microsoft.SqlServer.ReportingServices2010.RSConnection2010.SoapMethodWrapper`1.ExecuteMethod()
   at Microsoft.SqlServer.ReportingServices2010.RSConnection2010.ListItemTypes()
   at Microsoft.ReportingServices.UI.Global.SecureAllAPI()
   at Microsoft.ReportingServices.UI.ReportingPage.EnsureHttpsLevel()
   at Microsoft.ReportingServices.UI.ReportingPage.ReportingPage_Init(Object sender, EventArgs args)
   at System.EventHandler.Invoke(Object sender, EventArgs e)
   at System.Web.UI.Control.OnInit(EventArgs e)
   at System.Web.UI.Page.OnInit(EventArgs e)
   at System.Web.UI.Control.InitRecursive(Control namingContainer)
   at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

1 个答案:

答案 0 :(得分:3)

本地帐户+ NLB =可预测的失败。 使用域帐户访问虚拟服务器名称,或者如果要在本地帐户上使用本地帐户运行任务,则配置主机条目,以便虚拟服务器名称专门使用本地计算机。 NLB通常按IP地址缓存路由(不是纯粹的循环平衡),这可能导致“但本地帐户有时会工作”的情况。但是,如果您被路由到NLB中的其他节点,则本地帐户将失败。