Licensing

Component: NServiceBus
NuGet Package NServiceBus (6.x)

License details

See the Licensing page for license specifics.

License validity

The license is valid if the ExpirationDate or the UpgradeProtectionExpiration attribute in the license data is greater than or equal to the release date of the {major}.{minor}.0 version of the NServiceBus assembly used by the endpoint. To view the release dates for the various versions, see NServiceBus Packages Versions.

Only the Major/Minor part is relevant. Eg. if using NServiceBus 6.1.1 it's the release date if 6.1.0 that counts.

Throughput limitations

No limitations are enforced when either no license is found or a license has expired.

License management

There are several options available for installing the license file.

While all of the options below work for NServiceBus, using the registry, ServiceControl utilities, or ServiceInsight are the only options that lets the other platform tools share the same license file. More information about this can be found in the ServiceControl licensing and the ServiceInsight licensing pages.

Using the registry

NServiceBus PowerShell cmdlet

The NServiceBus PowerShell Module includes a cmdlet for importing the Platform License into the HKEY_LOCAL_MACHINE root key of the registry.

For 64-bit operating systems, the license is stored under "license" value in both the HKEY_LOCAL_MACHINE\Software\ParticularSoftware and HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\ParticularSoftware registry keys.

PowerShell

  • Open an administrative PowerShell console.
  • Change the current working directory to where the license.xml file is.
  • Run the following script:
$content = Get-Content license.xml | Out-String
New-Item -Path HKLM:\Software\ParticularSoftware -Force 
Set-ItemProperty -Path HKLM:\Software\ParticularSoftware -Name License -Force -Value $content
For 64-bit operating systems, this process should be done in both the PowerShell and PowerShell(x86) consoles. This will ensure the license is imported into both the 32-bit and 64-bit registry keys.

Registry Editor

  • Start the Registry Editor.
  • Go to HKEY_LOCAL_MACHINE\Software\ParticularSoftware or HKEY_CURRENT_USER\Software\ParticularSoftware.
  • Create a new Multi-String Value (REG_MULTI_SZ) named License.
  • Paste the contents of the license file.
If HKEY_LOCAL_MACHINE is the chosen license location, and the operating system is 64-bit, then repeat the import process for the HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\ParticularSoftware key to support 32-bit clients.
If the license is stored in HKEY_CURRENT_USER, NServiceBus processes must run as the user account used to add the license file to the registry in order to access the license.

It is safe to ignore any warnings regarding empty strings.

Using the configuration API

It is possible to specify the license to use in the configuration code:

endpointConfiguration.LicensePath("PathToLicense");
// or
endpointConfiguration.License("YourCustomLicenseText");

Using a license subdirectory

A file located at [AppDomain.CurrentDomain.BaseDirectory]/License/License.xml will be automatically detected.

Using app.config appSettings

It is possible to specify the license in app.config:

  • Use the key NServiceBus/LicensePath to specify the path where NServiceBus looks for the license:
<appSettings>
  <add key="NServiceBus/LicensePath"
       value="C:\NServiceBus\License\License.xml" />
</appSettings>
  • Use the key NServiceBus/License to store the XML-encoded contents of the license directly in app.config:
<appSettings>
  <add key="NServiceBus/License" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;&lt;
license id=&quot;1222e1d1-2222-4a46-b1c6-943c442ca710&quot; expiration=&quot;2013-11-30T00:00:00.0000000
&quot; type=&quot;Standard&quot; LicenseType=&quot;Standard&quot; LicenseVersion=&quot;4.0
&quot; MaxMessageThroughputPerSecond=&quot;Max&quot; WorkerThreads=&quot;Max
&quot; AllowedNumberOfWorkerNodes=&quot;Max&quot;&gt;
. . .
&lt;/license&gt;" />
</appSettings>

Order of license detection

This section details where NServiceBus will look for license information, and in what order. For example, an expired license in HKEY_CURRENT_USER would overrule a valid license in HKEY_LOCAL_MACHINE. Note that these vary somewhat in older versions.

In order to find the license, NServiceBus will examine:

LocationNotes
HKEY_CURRENT_USER\Software\ParticularSoftware\License
HKEY_LOCAL_MACHINE\Software\ParticularSoftware\License
HKEY_LOCAL_MACHINE\Software\Wow6432Node\ParticularSoftware\License1
License XML defined by NServiceBus/License appSetting
File path configured through NServiceBus/LicensePath appSetting
File located at {AppDomain.CurrentDomain.BaseDirectory}\NServiceBus\License.xml
File located at {AppDomain.CurrentDomain.BaseDirectory}\License\License.xml

Notes:

  1. The Wow6432Node registry keys are only accessed if running a 32-bit host on a 64-bit OS.
In Versions 6.3 and above, the first license found is no longer automatically the one chosen. All of the locations listed in the table above are examined for licenses, and the license with the latest expiration date is chosen.

Related Articles


Last modified