When using Azure Zip Deployment or another deployment option to Azure where the web files are cleared/cleaned on deployment can lead to ExamineX’s licensing system to not work when using Subscription licenses.
This is because ExamineX subscription licenses will renew a local license file every month which will result in a new file ExamineX-Azure-Umbraco.renewed.lic
being created/updated. This is problematic if this file is cleared out when deployments occur.
To resolve this issue, a new abstraction called ILicenseFileLoader
has been added to ExamineX with 2 shipped implementations: PhysicalFileLicenseFileLoader
(default) and BlobStorageLicenseFileLoader
. ExamineX will automatically enable the BlobStorageLicenseFileLoader
implementation depending on the options configured.
To enable this, you can either use json configuration:
"ExamineXBlobLicenseFileOptions": {
"ConnectionString": "YOUR-CONNECTION-STRING-GOES-HERE",
"ContainerName": "YOUR-CONTAINER-NAME",
"ContainerRootPath": "OPTIONAL-ROOT-PATH-FOR-LICENSE-FILE",
"Disabled": false // Optional, set to true to disable this even if the connection string is set
}
Or if you are already using Umbraco’s blob storage media provider and want to re-use the connection string and/or container name, you can configure this in C#:
builder.Services.AddSingleton<IConfigureOptions<ExamineXBlobLicenseFileOptions>>(
services => new ConfigureOptions<ExamineXBlobLicenseFileOptions>(options =>
{
// get the umbraco blob storage media options
var azureBlobFileSystemOptions = services.GetRequiredService<AzureBlobFileSystemOptions>();
// apply those values to the ExamineXBlobLicenseFileOptions
options.ConnectionString = azureBlobFileSystemOptions.ConnectionString;
options.ContainerName = azureBlobFileSystemOptions.ContainerName;
options.ContainerRootPath = "ExamineX";
}));
This will be shipped as part of ExamineX 4.1.0 but will first be released as a beta today!