Progress® Telerik® Reporting R2 2017

How to: Increase the timeout value of a WCF service

To avoid timeouts when using the Telerik Reporting WCF Service, one should set several attributes on the client and server side.

Timeouts on server binding

<bindings>
   <basicHttpBinding>
        <binding name="BasicHttpsBindingConfig" maxReceivedMessageSize="2147483647" maxBufferSize="2147483647"
         receiveTimeout="00:10:00" sendTimeout="00:10:00">
    <readerQuotas maxArrayLength="2147483647" maxStringContentLength="2147483647"/>
        </binding>
   </basicHttpBinding>
</bindings>
Note Note

The number 2,147,483,647 is the max value of a 32 bit signed integer.

Timeouts on client binding

C#
ReportServiceClient IReportServiceClientFactory.Create(System.Uri remoteAddress)
    {
        var binding = new BasicHttpBinding() // or BasicHttpBinding(BasicHttpSecurityMode.Transport) overload if SSL is used
        {
            MaxBufferSize = int.MaxValue,
            MaxReceivedMessageSize = int.MaxValue,
            ReceiveTimeout = new TimeSpan(0, 10, 0),
            SendTimeout = new TimeSpan(0, 10, 0)
        };

        var endpointAddress = new EndpointAddress(remoteAddress);

        return new ReportServiceClient(binding, endpointAddress);
    }

For more information, see Using Custom Bindings.

Timeouts when hosted in ASP.NET

When a WCF service is hosted in IIS/ASP.NET, another setting would also control the lifetime of the request: ExecutionTimeout.

<configuration>
  <system.web>
  <httpRuntime executionTimeout="600"/>
  </system.web>
</configuration>