---
title: Set up App and API Protection for .NET on Linux
description: Datadog, the leading service for cloud-scale monitoring.
breadcrumbs: >-
  Docs > Datadog Security > App and API Protection > Enabling App and API
  Protection > Enabling AAP for .NET > Set up App and API Protection for .NET on
  Linux
---

# Set up App and API Protection for .NET on Linux

{% callout %}
# Important note for users on the following Datadog sites: app.ddog-gov.com

{% alert level="danger" %}
This product is not supported for your selected [Datadog site](https://docs.datadoghq.com/getting_started/site). ().
{% /alert %}

{% /callout %}

{% alert level="info" %}
You can enable App and API Protection for .NET services with the following setup options:

1. If your .NET service already has APM tracing set up and running, then skip to service configuration.
1. If your .NET service doesn't have APM tracing set up, you can easily enable App and API Protection with Datadog's [Automatic Installation](https://docs.datadoghq.com/tracing/trace_collection/automatic_instrumentation/single-step-apm/linux/).
1. Otherwise, continue reading the manual setup instructions below.

{% /alert %}

## Overview{% #overview %}

App and API Protection leverages the [Datadog .NET library](https://github.com/DataDog/dd-trace-dotnet/) to monitor and secure your .NET service. The library integrates seamlessly with your existing application without requiring code changes.

For detailed compatibility information, including supported DOTNET versions, frameworks, and deployment environments, see [.NET Compatibility Requirements](https://docs.datadoghq.com/security/application_security/setup/dotnet/compatibility).

This guide explains how to set up App and API Protection (AAP) for .NET applications. The setup involves:

1. Installing the Datadog Agent.
1. Enabling App and API Protection monitoring.
1. Running your .NET application with the Datadog Agent.
1. Verifying the setup.

## Prerequisites{% #prerequisites %}

- Linux operating system
- .NET application
- Root or sudo privileges
- Systemd (for service management)
- Your Datadog API key
- Datadog .NET tracing library (see version requirements [here](https://docs.datadoghq.com/security/application_security/setup/dotnet/compatibility))

## 1. Installing the Datadog Agent

Install the Datadog Agent by following the [setup instructions for Linux hosts](https://docs.datadoghq.com/agent/?tab=Linux).

## 2. Enabling App and API Protection monitoring
If your .NET service already has APM tracing set up and running, you can automatically enable App and API Protection through Remote ConfigurationIf not, enable App and API Protection with the manual configuration instructions.navigation-menu{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;padding:20px;margin:20px 0}.nav-container h3{margin-top:0;margin-bottom:15px;color:#333;font-size:1.1em}.nav-list{list-style:none;padding:0;margin:0}.nav-list li{margin-bottom:8px}.nav-list a{color:#06c;text-decoration:none;font-weight:500}.nav-list a:hover{text-decoration:underline;color:#049}
### Automatically enabling App and API Protection through Remote Configuration{% #automatically-enabling-app-and-api-protection-through-remote-configuration %}

You can enable services with remote configuration on your [services dashboard](https://app.datadoghq.com/security/configuration/asm/setup?services=recommended). Check the box for the service you want to enable App and API Protection for under Activate on your APM services.

### Manually enabling App and API Protection monitoring{% #manually-enabling-app-and-api-protection-monitoring %}

**Go to [Datadog .NET Tracer package](https://github.com/DataDog/dd-trace-dotnet/releases)** to find out the latest release to download.

{% tab title="AMD 64 Platforms" %}
**Download and install** the latest *Datadog .NET Tracer package* that supports your operating system and architecture.

{% alert level="danger" %}
**Note on version:** replace **<TRACER\_VERSION>** with the latest three component version of the library (ej: 3.21.0)
{% /alert %}

```bash
wget -O datadog-dotnet-apm-<TRACER_VERSION>.tar.gz 'https://github.com/DataDog/dd-trace-dotnet/releases/download/v<TRACER_VERSION>'
```

Run the following command to install the package and create the .NET tracer log directory `/var/log/datadog/dotnet` with the appropriate permissions:

```bash
sudo tar -C /opt/datadog -xzf datadog-dotnet-apm-<TRACER_VERSION>.tar.gz && /opt/datadog/createLogPath.sh
```

{% /tab %}

{% tab title="ARM 64 Platforms" %}
**Download and install** the latest *Datadog .NET Tracer package* that supports your operating system and architecture.

{% alert level="danger" %}
**Note on version:** replace **<TRACER\_VERSION>** with the latest three component version of the library (ej: 3.21.0)
{% /alert %}

```bash
wget -O datadog-dotnet-apm-<TRACER_VERSION>.arm64.tar.gz 'https://github.com/DataDog/dd-trace-dotnet/releases/download/v<TRACER_VERSION>'
```

Run the following command to install the package and create the .NET tracer log directory `/var/log/datadog/dotnet` with the appropriate permissions:

```bash
sudo tar -C /opt/datadog -xzf datadog-dotnet-apm-<TRACER_VERSION>.arm64.tar.gz && /opt/datadog/createLogPath.sh
```

{% /tab %}

{% alert level="danger" %}
If you are having issues installing the Tracer library check the [Tracer Installation guide][5] *Note on version:* replace *\* with the latest three component version of the library (ej: 3.21.0)
{% /alert %}

{% collapsible-section %}
#### APM Tracing Enabled

Set the required environment variables and start your .NET application:

```bash
export CORECLR_ENABLE_PROFILING=1
export CORECLR_PROFILER={846F5F1C-F9AE-4B07-969E-05C26BC060D8}
export CORECLR_PROFILER_PATH=/opt/datadog/Datadog.Trace.ClrProfiler.Native.so
export DD_DOTNET_TRACER_HOME=/opt/datadog
export DD_SERVICE=<MY_SERVICE>
export DD_ENV=<MY_ENV>
export DD_APPSEC_ENABLED=true
```

{% /collapsible-section %}

{% collapsible-section %}
#### APM Tracing Disabled

To disable APM tracing while keeping App and API Protection enabled, you must set the APM tracing variable to false.

```bash
export CORECLR_ENABLE_PROFILING=1
export CORECLR_PROFILER={846F5F1C-F9AE-4B07-969E-05C26BC060D8}
export CORECLR_PROFILER_PATH=/opt/datadog/Datadog.Trace.ClrProfiler.Native.so
export DD_DOTNET_TRACER_HOME=/opt/datadog
export DD_SERVICE=<MY_SERVICE>
export DD_ENV=<MY_ENV>
export DD_APPSEC_ENABLED=true
export DD_APM_TRACING_ENABLED=false
```

{% /collapsible-section %}

## 3. Run your application

Start your .NET application with above settings.

## 4. Verify setup

To verify that App and API Protection is working correctly:

1. Send some traffic to your application
1. Check the [Application Signals Explorer](https://app.datadoghq.com/security/appsec) in Datadog
1. Look for security signals and vulnerabilities

## Troubleshooting{% #troubleshooting %}

If you encounter issues while setting up App and API Protection for your .NET application, see the [.NET App and API Protection troubleshooting guide](https://docs.datadoghq.com/security/application_security/setup/dotnet/troubleshooting).

## Further Reading{% #further-reading %}

- [How App and API Protection Works](https://docs.datadoghq.com/security/application_security/how-it-works/)
- [OOTB App and API Protection Rules](https://docs.datadoghq.com/security/default_rules/?category=cat-application-security)
- [Troubleshooting App and API Protection](https://docs.datadoghq.com/security/application_security/troubleshooting)
