Windows
Troubleshoot the Agent, application configuration, profiler and startup-hook load, transport, and Raygun ingestion separately. A running Agent service does not prove that a specific application loaded the profiler or startup hook.
1. Check the Agent service and health
Run PowerShell as Administrator:
Get-Service -Name RaygunAgent
Invoke-RestMethod http://127.0.0.1:18100/status
The service must be running and the health response must report that the Agent is running. Agent logs are stored under:
C:\ProgramData\Raygun\AgentLogs\
2. Check the installed files
Confirm these stable paths exist:
C:\Program Files\Raygun\RaygunAgent\Agent3\RaygunAgent.exe
C:\Program Files\Raygun\RaygunAgent\Agent3\Config\RaygunConfigurationUtil.exe
C:\Program Files\Raygun\RaygunAgent\Agent3\Raygun.Apm.StartupHook.dll
C:\Program Files\Raygun\RaygunProfiler\latest\x64\RaygunProfiler.dll
C:\Program Files (x86)\Raygun\RaygunProfiler\latest\x86\RaygunProfiler.dll
Repair the currently selected release if files are missing or damaged:
& ([ScriptBlock]::Create((Invoke-RestMethod https://downloads.raygun.com/apm/install.ps1))) -Reinstall
The installer verifies the MSI signature, restores all payload files, starts the service, and checks Agent health.
3. Check application configuration
For IIS, open the Raygun Configuration Utility and confirm that the correct application pool is configured with the intended Raygun application API key. For a supported Windows service, inspect it with the Raygun Agent command line.
For CoreCLR, the application environment must reference the latest profiler path. ASP.NET Core applications must also include the stable Raygun hook path in DOTNET_STARTUP_HOOKS:
C:\Program Files\Raygun\RaygunAgent\Agent3\Raygun.Apm.StartupHook.dll
Do not configure the application with a version-specific profiler path. If DOTNET_STARTUP_HOOKS contains other hooks, preserve them and add the Raygun path with a semicolon.
For a manually configured IIS pool, inspect its entry in:
C:\Windows\System32\inetsrv\config\applicationHost.config
A modern .NET pool needs CORECLR_ENABLE_PROFILING, CORECLR_PROFILER, the CORECLR_PROFILER_PATH values, DOTNET_STARTUP_HOOKS, PROTON_API_KEY, and PROTON_NETWORK_MODE. A .NET Framework pool uses the corresponding COR_ variables and does not use the startup hook. Compare the pool with the copy-paste examples in .NET on Windows profiler setup.
4. Restart the application
The CLR loads the native profiler only while a process starts. CoreCLR also loads the managed startup hook at process start. Recycle the IIS application pool or restart the Windows service after configuring it.
Restarting only the RaygunAgent service does not attach the profiler to an already-running worker.
5. Confirm the profiler loaded
Use Kudu, Process Explorer, Process Explorer from Sysinternals, or an elevated PowerShell session to inspect the application process modules. For example:
Get-Process -Name w3wp -Module -ErrorAction SilentlyContinue |
Where-Object ModuleName -eq 'RaygunProfiler.dll'
Check the correct worker if several application pools are active. A loaded profiler DLL proves only that the CLR attached it; it does not prove that commands reached the Agent or that Raygun accepted traces.
6. Generate representative traffic
Invoke real application routes that perform normal work. If only health checks appear in Raygun, confirm that requests are reaching the same profiled worker and exercise routes that call the expected databases and external services.
Confirm that new traces continue for several minutes. A single startup trace is not sufficient evidence of a healthy pipeline.
7. Enable temporary profiler logging
Add these variables to the affected application only:
PROTON_DEBUG_LOGLEVEL=Info
PROTON_DEBUG_LOGTOCONSOLE=true
Alternatively, set PROTON_ERROR_LOG_FOLDER to a directory writable by the application identity. Restart the application and review the profiler startup and transport messages.
Info logging is intentionally noisy. Remove the temporary variables and restart the application after diagnosis.
Uninstall and running IIS workers
The current uninstaller does not stop or recycle IIS application pools or customer Windows services. A running process can keep its loaded profiler until you choose to restart it, and Windows can defer deletion of the versioned DLL until then.
High CPU or memory use
Use code filtering for unhelpful high-frequency methods and sampling to control retained trace volume.
Do not add the retired Raygun_LowOverheadMode setting to a current 3.x installation.
Contact support
If the issue remains, contact Raygun Support and include:
- Agent and profiler version;
- Windows and .NET runtime version;
- IIS hosting model and application-pool bitness;
- Agent health response with secrets removed;
- the time window when representative requests were made; and
- relevant Agent and temporary profiler logs with API keys removed.