﻿# Upgrade ServiceControl from Version 2 to Version 3


Upgrading ServiceControl from version 2 to version 3 is a major upgrade and requires careful planning. During the upgrade process, the instance of ServiceControl that is being upgraded will no longer be available and will not be ingesting any messages.

## Prerequisites

Before upgrading to ServiceControl version 3 the instance being upgraded must be upgraded to at least [version 2.1.5](https://github.com/Particular/ServiceControl/releases/tag/2.1.5).

For more information how to upgrade from Version 1.x to 2.1.5 consult the [upgrade documentation](/servicecontrol/upgrades/1to2.md).

### Install .NET 4.6.1

The minimum .NET version for ServiceControl version 3 is [.NET 4.6.1](https://www.microsoft.com/en-us/download/details.aspx?id=49982).

If not already installed, the ServiceControl installer will install .NET 4.6.1 silently during the installation process.

To determine which .NET Framework versions are installed, consult the [Microsoft .NET Framework guidance](https://learn.microsoft.com/en-us/dotnet/framework/migration-guide/how-to-determine-which-versions-are-installed).

### Obsolete configuration sections

The following configuration sections are no longer supported and can be safely removed by deleting the section reference as well as the section itself.

```
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <section name="AzureServiceBusQueueConfig" type="NServiceBus.Config.AzureServiceBusQueueConfig, NServiceBus.Azure.Transports.WindowsAzureServiceBus" />
  </configSections>
  <AzureServiceBusQueueConfig ... />
</configuration>
```

or

```
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <section name="AzureQueueConfig"
              type="NServiceBus.Config.AzureQueueConfig, NServiceBus.Azure.Transports.WindowsAzureStorageQueues" />
  </configSections>
  <AzureQueueConfig ... />
</configuration>
```

The transports above have been tweaked with sensible defaults and manual configuration is no longer necessary.

### Upgrading ServiceControl

Once the prerequisites are met the upgrade to ServiceControl version 3 can be done as an in-place upgrade.


### Time for upgrade

This upgrade does not contain any data migrations, so the size of the database does not have any impact on the time to perform the upgrade.
