2

I have SQL Server Reporting services 2008 R2 environment in my Company.

2 servers Windows 2008 R2: PRERPSW01 and PRERPSW02, in domain DOMAIN_Company NLB name: PRERPS

IPs address ( I get by ping command):

PRERPSW01   192.168.110.41
prerps      192.168.90.92

hosts file in PRERPSW01 server

192.168.110.41  prerps

In PRERPSW01 and PRERPSW02 servers, there is this configuration:

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

In PRERPSW01, I use credentials PRERPSW01\installerUser

Open IE with http://PRERPS/ReportServer/ReportService2005.asmx and I cannot access

Open IE with http://PRERPSW01/ReportServer/ReportService2005.asmx and I can access

I have Poweshell script to deploy RDL files using URI http://PRERPS/ReportServer/ReportService2005.asmx

But I get the error

The request failed with HTTP status 401: Unauthorized.

In my PC, with credentials DOMAIN_Company\My_user,

Open IE with http://PRECASRPS/ReportServer/ReportService2005.asmx and I CAN access

Any suggestions?

Updated

Now, I use credentials DOMAIN_Company\PreRPSAdministrator. The same configuration for rsreportserver.config.

Test in PRERPSW01 is OK
Test in PRERPSW02 is KO

Log _ReportServerService__09_22_2015_13_58_31.log_ for PRERPSW02 test:

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)
Kiquenet
  • 14,494
  • 35
  • 148
  • 243

1 Answers1

3

Local accounts + NLB = predictable failure. Either use the domain account to access the virtual server name, or if you're going to run tasks on the local boxes with local accounts, then configure a hosts entry so the virtual server name uses the local machine exclusively. NLBs often cache routes by IP address (not pure round robin balancing) which can lead to 'but the local account works sometimes' scenario. But if you're routed to the other nodes in the NLB the local account will fail.

Lukasz P.
  • 2,219
  • 12
  • 21
  • I agree with this, when you see the dreaded "The request failed with HTTP status 401: Unauthorized." you are having authentication issues. I would go with a domain account. – Mozy Aug 22 '15 at 04:14
  • Now, I use credentials **DOMAIN_Company\PreRPSAdministrator**, and I get the same error for PRERPSW02 node. For PRERPSW01 node is OK. – Kiquenet Sep 22 '15 at 14:07
  • on both servers set the following host file entry: PRERPSW02 128.0.0.1 PRERPSW01 128.0.0.1 see if that fixes it. also please review this blog post since you might need to disable loop back prevention http://blogs.msdn.com/b/lukaszp/archive/2008/07/18/reporting-services-http-401-unauthorized-host-headers-require-your-attention.aspx – Lukasz P. Sep 22 '15 at 15:39