New to Telerik Reporting? Download free 30-day trial

Enabling SSL for the Reporting WCF service

The Silverlight Report Viewer and its WCF Reporting Service are no longer supported and deployed with the installation of Telerik Reporting. The last release of Telerik Reporting with included Silverlight Report Viewer is R1 2023.

When using HTTP as the transport, security is provided by a Secure Sockets Layer (SSL) implementation. SSL is widely used on the Internet to authenticate a service to a client, and then to provide confidentiality (encryption) to the channel. This topic explains how to enable SSL for the Telerik Reporting WCF service.

The solution is to configure corresponding bindings to use Transport security mode. Use the bindingConfiguration property inside your endpoint definition to point to your custom bindings.

To run your application using HTTPS the application must be hosted on a server supporting SSL. The Visual Studio Development Server, also known as Cassini, does not support SSL. for more details about configuring your IIS hosted application to use SSL, please refer to How to: Configure an IIS-hosted WCF service with SSL

The entire HTTPS-enabled system.serviceModel section of web.config is below:

<system.serviceModel>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
    <!--security settings -->
        <bindings>
            <basicHttpBinding>
                <binding name="BasicHttpBindingConfig">
                    <security mode="Transport"/>
                </binding>
            </basicHttpBinding>
            <webHttpBinding>
                <binding name="WebHttpBindingConfig">
                    <security mode="Transport"/>
                </binding>
            </webHttpBinding>
        </bindings>
        <services>
            <service name="Telerik.Reporting.Service.ReportService"
                        behaviorConfiguration="ReportServiceBehavior">
                <!-- endpoint allowing clients access to the Reporting WCF service -->
                <endpoint address=""
                            binding="basicHttpBinding"
                            bindingConfiguration="BasicHttpBindingConfig"
                            contract="Telerik.Reporting.Service.IReportService">
                    <identity>
                        <dns value="localhost" />
                    </identity>
                </endpoint>
                <!-- endpoint allowing clients access to resources as images -->
                <endpoint address="resources"
                            binding="webHttpBinding"
                            bindingConfiguration="WebHttpBindingConfig"
                            behaviorConfiguration="WebBehavior"
                            contract="Telerik.Reporting.Service.IResourceService"/>
                <!-- endpoint allowing clients access to receive service's metadata via SOAP messages -->
                <endpoint address="mex"
                            binding="mexHttpBinding"
                            contract="IMetadataExchange" />
            </service>
        </services>
        <behaviors>
            <serviceBehaviors>
                <behavior name="ReportServiceBehavior">
                    <serviceMetadata httpGetEnabled="true" />
                    <serviceDebug includeExceptionDetailInFaults="false" />
                </behavior>
            </serviceBehaviors>
            <endpointBehaviors>
                <behavior name="WebBehavior">
                    <webHttp />
                </behavior>
            </endpointBehaviors>
        </behaviors>
    </system.serviceModel>

The service can be tested after browsing the .svc file using HTTPS. If you want to show the service wsdl content set the ReportServiceBehavior <serviceMetadata httpsGetEnabled="true" />

See Also

In this article