SSRS URL gives a 503 error even though the service is running - The process cannot access the file because it is being used by another process

Description of Issue

Upon browsing to the SSRS URL (ex: https://xxxxx.tylertown.gov/ReportServer or https://xxxxx.tylertown.gov/Reports) you receive an HTTP 503 error. The SQL Server Reporting Services service is running and restarting it does not make any difference to the error.

Event Viewer on the SSRS server has various errors such as:

Unable to bind to the underlying transport for [::]:8082. The IP Listen-Only list may contain a reference to an interface which may not exist on this machine.  The data field contains the error number.

SSRS logs located at C:\Program Files\Microsoft SQL Server Reporting Services\SSRS\LogFiles\SQLDmpr0091.log show errors such as:

2024-08-16 11:17:22.0307|INFO|1|CFG : listenerUrl = [http://+:8082/] (env)
2024-08-16 11:17:22.0307|INFO|1|CFG : rsConfigFilePath = [..\ReportServer\rsreportserver.config] (env)
2024-08-16 11:17:22.0463|INFO|1|SKU: SQL Server Developer
2024-08-16 11:17:22.1714|ERROR|1|Unhandled exception in Appdomain System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.Net.HttpListenerException: The process cannot access the file because it is being used by another process

Context
  • SSRS

  • Reports

  • ReportServer

  • SQL Server Reporting Services

Cause

SSRS cannot access the files because the port is being used by another process

Resolution
  1. On the SSRS server, open Services

  2. Stop the SQL Server Reporting Services service (right click > Stop)

  3. Find what is using the port 

    1. Open an elevated Command Prompt window (right click > Run as Administrator)

    2. Run the following. Replace xxxx with the port listed in the errors

      1. netstat -ano -p TCP | find /I "listening" | find /I "xxxx"

      2. netstat -ano -p TCP | find /I "listening" | find /I "8082"

    3. The last column will provide the PID (Process ID)

    4. Run the following. Replace xxxx with the PID returned in the previous step

      1. tasklist /fi "PID eq xxxx"

      2. tasklist /fi "PID eq 2712"

  4. In Services, locate the conflicting service and stop it (Right click > Stop) 

  5. Start the SQL Server Reporting Services service (right click > Start)

  6. Start the conflicting service (Right click > Start)

  7. Chang startup type of the conflicting service to Automatic (Delayed Start)

    1. Right click > Properties

    2. Startup type select Automatic (Delayed Start)

    3. Click OK

  8. Reload the SSRS URL

Additional Information