Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
Anonymous
Not applicable

Scale-Out Power BI report Server using F5 Load Balancer.

I am scaling out Two Nodes of Power BI Report Servers installed at both nodes. To configure F5 Load Balancer I needs to enter MachineKey entry into to Web.config file. Accroding to different Blogs I understand that it is same as SSRS.

The web.config file that I am changing is located at C:\Program Files\Microsoft Power BI Report Server\PBIRS\ReportServer.

I don't see any other path at the Server because I have only installed Power BI report Server.

When I Enter the Machine Key element after <system.web> like below

<machineKey validationKey="AutoGenerate,IsolateApps"
decryptionKey="AutoGenerate,IsolateApps" validation="3DES" decryption="3DES"/>

After I save the file and restart the Server to take effects then machineKey element is disappeared.

When I Look into the Log file it gives only Error 

Error library!DefaultDomain!b25c!01/06/2018-15:59:32:: e ERROR: Throwing Microsoft.ReportingServices.Diagnostics.Utilities.ServerConfigurationErrorException: Invalid PBI Configuration, Microsoft.ReportingServices.Diagnostics.Utilities.ServerConfigurationErrorException: The report server has encountered a configuration error. ;

But My Power BI is working fine and there is no effect of this Error.  I am installing November 01 2017 Realse and It looks the latest release.

 

Immedaite Help wil be highly appreciated,

2 ACCEPTED SOLUTIONS

Sorry for the link, I corrected it in the post and added here as well.

 

https://docs.microsoft.com/en-us/sql/reporting-services/extensions/security-extension/how-to-install...

 

The point of that URL wasn't about custom authentication per se, but more to show that the location you need to put the machine key is changed with PBIRS. Unfortunatley that's the only place such information is documented correctly on MS site.

And yes, putting the machine key in rsReportserver.config, while is the right place, may not solve your poblem, so you may need to put it in the machine.config of the dotnet.

 

In any case, my understanding is that using the machine key will solve the view state validation issue. However the MS documentation is not really clear if that is a requirement for PBI type of reports or only applicable to paginated (traditional SSRS) reports. In case of paginated reports, I don't think setting affinity at the load balancer will provide you a fault free solution for view state, so your best bet still would be setting the machine key.

 

In certain scnearios, you'd need to put an entry on each server host file to point the virtual host name to the IP of that server for PBIRS scale out to work properly. 

View solution in original post

Anonymous
Not applicable

Issue is resolved.

Isuse was in F5 Load Balancer. Wrong port was configured. We just Change the port to 80 and Its works fine for me.

I did followng Steps.

  1. add MachineKey inside rsReportServer.config under <configuration> section.
  2. add <Hostname> reporting.company. com</Hostname> under <Service> section.
  3. add Root URL <UrlRoot>http:// reporting.company. com/reportserver</UrlRoot>

 

I appreciate the your support.

View solution in original post

6 REPLIES 6
pbx
Helper V
Helper V

Things have changed:
Please look at this for how it is supposed to be configured:

https://docs.microsoft.com/en-us/sql/reporting-services/extensions/security-extension/how-to-install...


The above means for PBIRS the machine key should be placed in \ReportServer\rsReportServer.config. However according to the following link, a bug in PBIRS, at least up to this version 1.1.6514.9163 (Build 14.0.600.434), exists that requires putting they keys in machine.config.

https://github.com/Microsoft/Reporting-Services/issues/26

Depending on your version you may want to try the first and if it doesn't work the second approach. View state errors only show up in certain scenarios, btw.

Anonymous
Not applicable

Thanks for your reply.

First link https://docs.microsoft.com/en-us/sql/reporting-services/extensions/security-extension/how-to-install is not working and secondly our Organization will not allow custom security.

According to your reply that saving MachineKey inside the rsReportserver.config will not solve our issue.

 

According to October Release, we can sacle out the PBI Server.

Scale-out

This release supports scale-out. Use a load-balancer and set server affinity for the best experience. Note that the scenario is not yet optimized for scale-out, so you'll see models potentially replicated across multiple nodes. The scenario will work without the Network Load Balancer and sticky sessions. However, you'll not only see an over-use of memory across nodes as the model is loaded N times, but performance will slow in between connections as the model is streamed as it hits a new node in between requests.

 

Can we go for load-balancer and set server affinity option?

Any other option will be mosted welcomed or we should wait for new release?

Sorry for the link, I corrected it in the post and added here as well.

 

https://docs.microsoft.com/en-us/sql/reporting-services/extensions/security-extension/how-to-install...

 

The point of that URL wasn't about custom authentication per se, but more to show that the location you need to put the machine key is changed with PBIRS. Unfortunatley that's the only place such information is documented correctly on MS site.

And yes, putting the machine key in rsReportserver.config, while is the right place, may not solve your poblem, so you may need to put it in the machine.config of the dotnet.

 

In any case, my understanding is that using the machine key will solve the view state validation issue. However the MS documentation is not really clear if that is a requirement for PBI type of reports or only applicable to paginated (traditional SSRS) reports. In case of paginated reports, I don't think setting affinity at the load balancer will provide you a fault free solution for view state, so your best bet still would be setting the machine key.

 

In certain scnearios, you'd need to put an entry on each server host file to point the virtual host name to the IP of that server for PBIRS scale out to work properly. 

Anonymous
Not applicable

I do following changes in rsReportServer config file.

  1. Add MachineKey inside in rsReportServer config file under Configuration
  2. Add hostname <Hostname> reporting.company. com</Hostname>
  3. Add URL Root as <UrlRoot>http:// reporting.company. com/reportserver</UrlRoot>

I also add MachineKey in Machine.config file at path C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config 

Do I needs to change in all framework version?

 

Anyway all these steps dit not work for me. when I browse the URL of F5 NLB It shows me The Page Can't be displaced.

I also try to add new Web Service URL with the IP of NetWorkLoadBalncer in Configuraion manager. I also try Virtual name of NLB instead of IP. When I restart the service it Give Error in log file as

rshost!rshost!5bd8!01/08/2018-08:19:39:: e ERROR: Failed to register url=http://192.168.1.2:80/ReportServer/ for endpoint 2, error=4be.
rshost!rshost!5bd8!01/08/2018-08:19:39:: i INFO: Currently registered url http://+:80/ReportServer/ on endpoint 2
servicecontroller!DefaultDomain!364!01/08/2018-08:19:39:: e ERROR: Error creating HTTP endpoint. System.Runtime.InteropServices.COMException (0x800704BE): The format of the specified network name is invalid. (Exception from HRESULT: 0x800704BE)

 

According to my understanding Scale out in Power BI report Server is still immature and viewstate is not working. Adding anything inside config files is not an option for us. 

So only option looks to me is to configure servers at F5 Load Balancer. 

 

Please suggest further. 

 

If the virtual host name (the one registered at F5) is reporting.mycompany.com, then by default you should go to http://reporting.mycompany.com/reports for the portal, http://reporting.mycompany.com wouldn't work for SSRS. Not sure if this is the problem. If not, it's important to know your URL reservations for Report Server Web Service and the application before one can tell what's going on. Also, did you make sure a single server implementation works before attempting scale out.

Anonymous
Not applicable

Issue is resolved.

Isuse was in F5 Load Balancer. Wrong port was configured. We just Change the port to 80 and Its works fine for me.

I did followng Steps.

  1. add MachineKey inside rsReportServer.config under <configuration> section.
  2. add <Hostname> reporting.company. com</Hostname> under <Service> section.
  3. add Root URL <UrlRoot>http:// reporting.company. com/reportserver</UrlRoot>

 

I appreciate the your support.

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.