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.

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: 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:
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:

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

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 Denied
  • 0x80070002 = 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:
  1. Navigate to the extracted Atatus profiler folder, which is the directory set in ATATUS_PROFILER_HOME (e.g., C:\atatus)
  2. Right-click the folder → Properties → Security tab
  3. Click Edit → Select your Application Pool Identity (usually IIS AppPool\<PoolName>)
  4. 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.dll is 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.exe and loaded DLLs (if possible)