New to Telerik Reporting? Download free 30-day trial

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>

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

Timeouts on client binding

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>
In this article