This document focuses on troubleshooting scenarios where applications hosted on IIS do not send data to Atatus.
Applies To
- IIS 8 and above
- ASP.NET Core applications
- ASP.NET (.NET Framework) applications
1. Confirm Application Type in IIS
Identify whether the application is ASP.NET Core or .NET Framework.
| Indicator Type | .NET Framework Application | ASP.NET Core Application |
|---|---|---|
| Entry point | Global.asax |
Application entry point is a .dll |
| Configuration file | Web.config |
Web.config with AspNetCoreModuleV2 |
| Startup structure | App_Start folder |
No App_Start folder |
| Package management | packages.config |
No packages.config |
| Global.asax usage | Present | Not present |
2. Verify IIS Application Pool Configuration
Incorrect Application Pool settings are the most common cause of missing data. If these values are misconfigured, the Atatus profiler will fail to attach, and no telemetry will be collected.
Open IIS Manager and select your application pool. Click Advanced Settings to verify:
| Setting | .NET Framework Value | ASP.NET Core Value | Notes |
|---|---|---|---|
| .NET CLR Version | v4.0 |
No Managed Code |
Mismatch causes profiler load failure |
| Pipeline Mode | Integrated |
Integrated |
Classic mode is not supported |
| Enable 32-Bit Applications | False | False | The .NET profiler does not support 32-bit environments. |
| Managed Runtime Version | v4.0 |
(empty) |
Ensure it matches your app framework |
| Identity | ApplicationPoolIdentity |
ApplicationPoolIdentity |
Must have file permissions |
After making changes, restart the IIS.
3. Ensure Required IIS Features Are Enabled (.NET Framework Only)
Navigate to:
Windows Features → Internet Information Services → Application Development Features
Ensure the following are enabled:
- ASP.NET 4.x
- .NET Extensibility 4.x
- ISAPI Extensions
- ISAPI Filters
After enabling, restart the server.
Note: If these features are missing, IIS treats the application as static content, and no profiling occurs.
4. Verify Environment Variables in IIS Scope
Atatus requires specific environment variables to be available at the IIS Application Pool level or higher.
Option 1: Check via applicationHost.config
Open the IIS configuration file:
%windir%\system32\inetsrv\config\applicationHost.config
Verify Atatus-related environment variables are defined. They should appear under one of:
<applicationPoolDefaults>(applies to all app pools)- Your specific
<applicationPool>element (applies only to that pool)
Option 2: Check via PowerShell
Run the following commands to inspect the App Pool environment variables:
cd $env:SystemRoot\System32\inetsrv
.\appcmd.exe list apppool "<APP_POOL_NAME>" /config /xml
5. Enable Debug Logging
Enable debug logging to collect detailed troubleshooting information by setting the following environment variables at the Application Pool level.
Debug Options
| Environment Variable | Purpose |
|---|---|
ATATUS_LOG_LEVEL=debug |
Enables debug logs for the Atatus agent |
OTEL_LOG_LEVEL=debug |
Enables debug logs for the Atatus profiler |
Restart the application after enabling debug logging.
6. Validate Profiler Load (Event Viewer + IIS Worker Process)
This step confirms whether the Atatus profiler attempted to load and why it failed.
Step 1: Check Windows Event Viewer
Open:
Event Viewer → Windows Logs → Application
Look for errors like:
Error 1: Loading profiler failed during CoCreateInstance
- Cause: 32-bit / 64-bit mismatch between IIS and the profiler
- Solution: Match the profiler bitness to your IIS process architecture (see Step 2)
Error 2: The system cannot find the file specified
- Cause: Environment variables pointing to wrong profiler DLL path
- Solution: Verify file exists at the path specified in
COR_PROFILER_PATH
Error 3: Access denied
- Cause: IIS Application Pool identity lacks read permissions on profiler files
- Solution: See "Step 3: Verify File Permissions" below
What HRESULT codes mean:
0x800700C1= Bad Image Format (binary incompatible)0x80070005= Access Denied0x80070002= File Not Found
Step 2: Verify File Permissions
The IIS Application Pool identity must have Read + Read & Execute permissions on the Atatus profiler files.
To check/set permissions:
- Navigate to the extracted Atatus profiler folder — the directory set in
ATATUS_PROFILER_HOME(e.g.,C:\atatus) - Right-click the folder → Properties → Security tab
- Click Edit → Select your Application Pool Identity (usually
IIS AppPool\<PoolName>) - Ensure these permissions are Allowed:
- Read
- Read & Execute
- List Folder Contents
Step 3: Confirm Profiler DLL Loaded in Worker Process
Use Process Explorer to inspect the IIS worker process:
- Process:
w3wp.exe - Confirm whether
atatus_profiler.dllis loaded
If the DLL is not listed, the profiler could not attach.
Common Reasons and What to Check
- 32-bit / 64-bit mismatch between IIS and the profiler
- Missing Microsoft Visual C++ Redistributable on the server
- Corrupt or incomplete profiler files (rare)
Still Having Issues?
Collect the following information and contact Atatus Support at success@atatus.com:
- Event Viewer logs: Export Application logs from around the time of the issue
- Diagnostic information:
- Atatus Agent version installed
- Application framework (.NET Framework version or .NET Core version)
- Server OS version and architecture (32-bit or 64-bit)
- IIS version
- Application Pool identity and settings
- Whether data ever appeared in Atatus for this application
- Process Explorer output: Screenshot showing
w3wp.exeand loaded DLLs (if possible)
+1-415-800-4104