Installation:

Contact me direct.

Configurations:

Client and Server application.config

Application Section

<application
    type="SERVER"
    name="Chicago1" 
    configuration="http://iis/SsrsRenderStudio/master/SsrsRenderStudioServer.config"/>

AttributeDefinition
typeApplication type identifier: CLIENT or SERVER.
nameThe unique name of this app. This value must correspond to a server or client in the master configuration file.
configurationThe URL of the master configuration.

DEPRECATED: WCF Endpoint Section

<endpoint 
    location="http://iis/SsrsRenderStudio/endpoints/servers/chicago1.config"/>

AttributeDefinition
locationURL pointing to a WCF Pointer file

DEPRECATED: Logging Section

<logging
    source="SsrsRenderStudioConsoleClient"
    verbosity="10"/>

AttributeDefinition
sourceThis value identifies the source of each log message.
verbosityRepresents message severity threashold to include in logging. For example, if the verbosity value is set to 4, messages with severity 0, 1, 2, 3 and 4 are logged. Messages with severity higher than 4 are ignored.

The user running the Server service must have appropriate permissions to create an event source and view the Security event log.

ValueSeverity
0emergency
1alert
2critical
3error
4warning
5notice
6informational
7debug

DEPRECATED: Server Section

<server 
    name="Chicago1" 
    configuration="http://iis/SsrsRenderStudio/master/SsrsRenderStudioServer.config"/>

AttributeDefinition
nameThe unique name of this server. This value must correspond to a server in the master configuration file.
configurationThe URL of the master configuration.

Configuration Server Configurations

WCF Pointers and Bindings

Client WCF Pointer
<endpoints><endpoint 
	name="SsrsRenderStudio.Wcf.ServiceContract.IRenderStudioUserService" 
	location="http://iis/SsrsRenderStudio/endpoints/bindings/SsrsRenderStudio_ServerA.config"/>
                    <endpoint 
	name="SsrsRenderStudio.Wcf.ServiceContract.IRenderStudioUserService" 
	location="http://iis/SsrsRenderStudio/endpoints/bindings/SsrsRenderStudio_ServerB.config"/></endpoints>

Server WCF Pointer
<endpoints><endpoint 
	name="SsrsRenderStudio.Wcf.ServiceImpl.RenderStudioUserService" 
	location="http://iis/SsrsRenderStudio/endpoints/bindings/SsrsRenderStudio_ServerA.config"/></endpoints>

AttributeDefinition
nameType name associated with the endpoint section.
locationURL pointing to the actual WCF endpoint binding information.

Please note that the name attribute must appear as shown above. They are different for client and server.

The Client and Server nodes inside the master configuration contain a Endpoint attribute which corresponds to a node inside the Endpoints list in the same configuration file. The node inside the Enpoints list is referencedy by the FriendlyName attribute and the Location attribute is the URL to the 'WCF Pointer'. The client and server application.config files contain a URL that points to the above 'WCF pointers'. A 'WCF pointer' points to the 'WCF endpoint binding configuration'. When a client channel is created or a server service host is opened, the 'WCF endpoint binding configuration' (system.serviceModel) is applied and network communication is established.

'WCF pointers' are located on the configuration server for ease of administration. For example, if Server C is added to the Chicago group, only the 'WCF pointer' file has to be modified and the local client/server configurations are not touched.

'WCF pointers' can contain multiple <endpoint> sections, prioritized from top to bottom. If a client attempts to connect to Server A, but Server A is down, then the client will attempt to connect to Server B. Multiple <endpoint> sections for servers are not supported.

RenderStudio Master Configuration

Application section
<Application 
    Name="SsrsRenderStudio" 
    Version="1" 
    Revision="0"/>

Not Used.
Smtp section
<Smtp 
    Host="smtp.domain.com" 
    FromAddress="SsrsRenderStudio@domain.com" 
    FromDisplayName="SSRS Render Studio"
    AdministratorEmail="admin@domain.com"/>

Used for email communications.
Logging section
<Logging>
    <Log FriendlyName="Chicago1" Verbosity="10" IsImmediate="true" LogProcessingInterval="0:00:30">
      <Actions>
        <Action Severity="0,1,2,3,4,5">
          <Execute Type="CONSOLE"/>
          <Execute Type="LOG" Filename="server.log"/>
          <Execute Type="EVENT" Logname="Application" Source="SsrsRenderStudioServer"/>
        </Action>
        <Action Severity="0,1,2">
          <Execute Type="EMAIL" Recepient="chris@somewhere.com"/>
          <Execute Type="LOG" Filename="server_CRITICAL.log"/>
        </Action>
        <Action Severity="6,7">
          <Execute Type="CONSOLE"/>
          <Execute Type="LOG" Filename="server.log"/>
        </Action>
      </Actions>
    </Log>
  </Logging>

Per application configuration of the logging facilities. Changes to the logging configuration require application restart.
Log section
AttributeDefinition
FriendlyNameIdentifies the log facilities configuration. Must match the Logging attribute in Client/Server configuration.
VerbositySeverity level to log up to. 0=emergency, 7=debug.
IsImmediate'true' or 'false'. Determines whether the log facility processes requests immediately or as a batch at given intervals.
LogProcessingIntervalIf IsImmediate is 'false' then this TimeSpan interval determines the batch processing interval of log requests.

Action section
Each log facility configuration can contain multiple Action sections.
AttributeDefinition
SeverityComma delimited list of severity levels to apply this section to.

Execute section
Each Action section can contain multiple Execute sections.
AttributeDefinition
TypeType of task to execute for this severity.

Available Types:
TypeDescriptionParameters
CONSOLEOutput to consoleNone
LOGOutput to fileFilename=the filename to write to in the application's directory.
EVENTOutput to Windows Event LogLogname=the log name to write to (Application,System,Security), Source=the name of the log entry as it appears in the Event Log.
EMAILOutput to email, based on the Smtp section of the master configuration.Recepient=single email address.
NONEOutput to nullNone

Endpoints section
<Endpoints>
    <Endpoint FriendlyName="Chicago1" Location="http://iis/SsrsRenderStudio/endpoints/servers/chicago1.config"/>
    <Endpoint FriendlyName="SsrsRenderStudioConsoleClient" Location="http://iis/SsrsRenderStudio/endpoints/clients/chicago.config"/>
  </Endpoints>

AttributeDefinition
FriendlyNameIdentifies the name of this Endpoint configuration. Must match the Endpoint attribute in the Server/Client section.
LocationURL to the WCF Endpoint Pointer configuration.

Recovery section
<Recovery>
    <RexRecovery Description="Server should recover when the REX renderer returns any of these enabled exceptions.">
      <RecoverOn Exception="RENDERER_REX_DOWN" Enabled="true"/>
      <RecoverOn Exception="RENDERER_REX_MALFORMED" Enabled="true"/>
      <RecoverOn Exception="RENDERER_LOAD_REPORT_FAILED" Enabled="true"/>
      <RecoverOn Exception="RENDERER_LOAD_REPORT_FAILED_INVALID_REPORT" Enabled="true"/>
      <RecoverOn Exception="RENDERER_SOAP_ERROR" Enabled="false"/>
      <RecoverOn Exception="RENDERER_GENERIC_ERROR" Enabled="false"/>
      <RecoverOn Exception="RENDERER_ZERO_LENGTH_STREAM" Enabled="false"/>
      <RecoverOn Exception="RENDERER_ENGINE_CONTEXT_NOT_SETUP" Enabled="false"/>
    </RexRecovery>
  </Recovery>

The exception types that should trigger a REX recovery action. If a server submits a report processing request to a faulted REX and encounters one of the above exceptions it will attempt to submit the request to the next REX.
AttributeDefinition
ExceptionPredetermines exception type available in the application.
EnabledIf 'true' then the exception will trigger a recovery attempt.

Clients section
  <Clients>
    <Client FriendlyName="SsrsRenderStudioConsoleClient" 
            Logging="SsrsRenderStudioConsoleClient"
            Endpoint="SsrsRenderStudioConsoleClient"/>
  </Clients>

AttributeDefinition
FriendlyNameIdentifies the client. Must match the name attribute in the client's application.config.
LoggingIdentifies log facility configuration. Must match the FriendlyName attribute in the Logging section.
EndpointIdentifies WCF endpoint pointer to use. Must match the FriendlyName attribute in the Endpoints section.

Servers section
<Server
      FriendlyName="Chicago1"
      ServiceName="SsrsRenderStudio"
      PreferredReportServer="US09RPT01"
      PreferredReportServerGroup="ChicagoReportServers"
      PreferredReportServerGroupOnly="false"
      ReportCacheTtl="0:05:00"
      IsDebug="true"/>

AttributeDefinition
FriendlyNameIdentifies the server. Must match the name attribute in the server's application.config.
LoggingIdentifies log facility configuration. Must match the FriendlyName attribute in the Logging section.
EndpointIdentifies WCF endpoint pointer to use. Must match the FriendlyName attribute in the Endpoints section.
ServiceNameNot Used
PreferredReportServerThe RS to use when executing reports.
PreferredReportServerGroupThe RS group to iterate when recovering from a broken RS instance.
PreferredReportServerGroupOnlyRecover within the preffered RS group only.
ReportCacheTtlTimeSpan that a processed report is available for quick reprocessing (hh:mm:ss).
RexKeepAliveTimerTimeSpan that a dummy report is sent to the seen REXs. This is used to speed up report processing after IIS recycles the SSRS process
IsDebugBoolean value that outputs extra debug information to disk. You must manually create a debug folder in the installation directory.

ReportServers section
<ReportServer 
      FriendlyName="US09RPT01" 
      Group="ChicagoReportServers" 
      RexUrl="http://rpt01:80/reportserver/ReportExecution2005.asmx" 
      RsUrl="http://rpt01:80/ReportServer/ReportService2005.asmx"/>

Used by the Servers section.
Reports section
<Report 
      FriendlyName="Test_Portrait_4by6" 
      ReportUrl="/SsrsRenderStudioDev/SatoReportPortrait" 
      OverridePageSettings="True"
        Width="4" Height="6" MarginTop="0" MarginBottom="0" MarginRight="0" MarginLeft="0"/>

AttributeDefinition
FriendlyNameName of the report as it called from the client application.
ReportUrlNative RS requires the relative path to the report.
OverridePageSettingsIncreases performance if the report settings are listed and overriden here. Otherwise SsrsRenderStudio has to query for report settings after it loads the report to the RS ReportExecutionService. All dimensions are in inches.

Printers section
<Printer 
      FriendlyName="ChrisPrinter" 
      NetworkDestination="\\PrtSrv\chris" 
      OverridePrinterSettings="true" 
        DpiX="203" DpiY="203"/>

AttributeDefinition
FriendlyNameName of the printer as it is called from the client application.
NetworkDestinationThe CIFS path of the printer.
OverridePrinterSettingsIncreases performance if the printer DPI are listed and overriden here. Otherwise SsrsRenderStudio has to query the printer for that information.

Important: printer drivers must be installed on each SsrsRenderStudio Server manually!

Other Settings

Report Server RsReportServer.config

Report execution performance is affected by the RS application domain recycle time. When the application domain is recycled, the first client request can take longer than expected. Ensure your WCF binding timeouts accomodate this or modify the RS recycle time.

RsReportServer.config
RS Application Domains