Telerik Report Server Service Agent Is Not Running
Environment
Product | Progress® Telerik® Report Server |
Description
The Telerik.ReportServer.ServiceAgent
is a Windows Service that should be constantly running on the machine where the Report Server is installed. It uses WCF to communicate with the Report Server Manager and the corresponding settings are stored in two configuration files: Telerik.ReportServer.ServiceAgent.exe.config
and Report Server's configuration file Web.config
.
The Report Server maintains the connection with the Service Agent and polls it when a certain event occurs: a Scheduled Task or a Data Alert is added or modified, or the Report Server settings are changed.
Error Message
-
When a Scheduled Task or a Data Alert is being added or modified:
An error occurred while updating the task: Telerik Report Server Service Agent is not running. Please check the Windows service.
-
When the Report Server configuration cannot be saved:
An error occurred while saving the settings: The changes were not applied!
Cause\Possible Cause(s)
- The service is not running.
- The Report Server application cannot communicate with the Service Agent at the configured port.
Solution
Telerik Report Server R2 2018 (4.1.18.516) exhibits this issue. It has been fixed in R2 2018 SP1 (4.1.18.620). If you are using a different version than 4.1.18.516 and still experience the issue, please follow the steps below.
To make sure that the service is running and that the Report Server application can find the service using the configured address check the following:
- Open Windows Task Manager and look for the
Telerik.ReportServer.ServiceAgent
service - it should be running. -
Open the
Telerik.ReportServer.ServiceAgent.exe.config
file located at[installation folder]\Progress\Telerik Report Server\Services
and look for the address of the service in thebaseAddress
element. Paste this address in the browser to check if the service is functioning.The URL in the
baseAddress
should look likehttp://MachineNameHere:81/ReportServer/ServiceAgent
The expected content of the opened web page is like the below image:
Open the Report Server's
Web.config
file located at[installation folder]\Progress\Telerik Report Server\Telerik.ReportServer.Web
and check if theaddress
of the client/service matches thebaseAddress
provided inTelerik.ReportServer.ServiceAgent.exe.config
. Note that the name of the protocol, i.e.http:\\
is a must in the URL.-
Enable tracing in the
Telerik.ReportServer.ServiceAgent.exe.config
file, start the service manually, and check the generated log file for errors.<configuration> ... <system.diagnostics> <trace autoflush="true" indentsize="4"> <listeners> <add name="myListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="serviceAgent.log" /> <remove name="Default" /> </listeners> </trace> </system.diagnostics> </configuration>
-
Enable tracing in the Telerik.ReportServer's
Web.config
file, restart the web application and check the generated log file for errors.<configuration> ... <system.diagnostics> <trace autoflush="true" indentsize="4"> <listeners> <add name="myListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="reportServer.log" /> <remove name="Default" /> </listeners> </trace> </system.diagnostics> </configuration>
-
The communication layer between the Service Agent and Report Server uses WCF service and by default relies on port 80 for initial client registration. Ensure that the port is currently not used by another application or service. Use the
netstat
command to list the active connections and check if port 80 is available. A common issue is to have a web server (e.g. Apache Tomcat) already using this port. In this case either move the application that occupies port 80 to another port or change the configuration of thewsDualHttpBinding
entry in Report Server'sWeb.config
file, adding clientBaseAddress attribute to the binding entry:<system.serviceModel> <bindings> <wsDualHttpBinding> <binding clientBaseAddress="https://your-reportserver-url:56436" name="WSDualHttpBinding_IServiceAgentCommService" sendTimeout="00:00:10"/> </wsDualHttpBinding> </bindings> ... </system.serviceModel>