Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
8 years ago
Solved

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,

  • pbx's avatar
    pbx
    8 years ago

    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-custom-security-extensions

     

    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's avatar
    Anonymous
    8 years ago

    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.

6 Replies

  • 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-custom-security-extensions


    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's avatar
      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?

      • pbx's avatar
        pbx
        Helper V

        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-custom-security-extensions

         

        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.