System.PlatformNotSupportedException: Registry is not supported on this platform

Ik heb geprobeerd Invantive Data Hub te installeren op mijn Linux laptop (Ubuntu 22.04), maar krijg telkens bij het opstarten van ./Invantive.Producer.Data.Hub dezelfde fout.

Na wat opzoeken blijkt dat dit waarschijnlijk te maken heeft met het ontbreken van het Windows Registry op Linux-systemen. Betekent dit dat Invantive Data Hub dan toch niet ondersteund wordt op Linux?

Zie ook Windows Registry equivalent support for Linux in .Net 5 - Microsoft Q&A

*** Invantive Data Hub Multi-Platform (24.0.17-PROD+4608) on 22-03-2024 12:59:35 (UTC) ***

(C) Copyright 2004-2024 Invantive Software BV, the Netherlands. All rights reserved.

12:59:36.565 itgenadm001: Discovering...
Exception during boot: System.AggregateException: One or more errors occurred. (Registry is not supported on this platform.)
 ---> System.PlatformNotSupportedException: Registry is not supported on this platform.
   at Microsoft.Win32.RegistryKey.OpenBaseKey(RegistryHive hKey, RegistryView view)
   at Invantive.Data.Providers.Odbc.OdbcDataSources.DiscoverRegistryView(GlobalState owner, ExecutionOptions executionOptions, RegistryView registryView)
   at Invantive.Data.Providers.Odbc.OdbcDataSources.A(GlobalState, ExecutionOptions executionOptions)
   at Invantive.Data.Providers.Odbc.OdbcDataSources.GetOdbcDataSources(GlobalState owner, ExecutionOptions executionOptions)
   at Invantive.Data.Providers.Odbc.OdbcProvider.GetOdbcDataSources(GlobalState owner, ExecutionOptions executionOptions)
   at Invantive.Data.Providers.Odbc.OdbcProvider.Discover(GlobalState owner, ExecutionOptions executionOptions, SqlExecutionStep sqlExecutionStep)
   at Invantive.Data.ConnectionManager.g.A()
   at System.Threading.Tasks.Task`1.InnerInvoke()
   at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location ---
   at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread)
   --- End of inner exception stack trace ---
   at System.Threading.Tasks.Task.WaitAllCore(Task[] tasks, Int32 millisecondsTimeout, CancellationToken cancellationToken)
   at System.Threading.Tasks.Task.WaitAll(Task[] tasks)
   at Invantive.Producer.AutoDiscoveryTextForm.Show(GlobalState owner, ExecutionOptions executionOptions)
   at Invantive.Producer.ConsoleUserInteraction.OpenAutoDiscoveryDialog(GlobalState owner, ExecutionOptions executionOptions, Boolean discoveryRequired, Boolean askedDiscovery)
   at Invantive.Producer.UtilityBaseCore.OpenAutoDiscoveryDialog(GlobalState owner, ExecutionOptions executionOptions, Boolean discoveryRequired, Boolean askedDiscovery)
   at Invantive.Producer.UtilityBaseCore.OpenAutoDiscoveryDialogWhenNecessary(GlobalState owner, ExecutionOptions executionOptions)
   at Invantive.Producer.Data.Hub.QueryEngine.Run(GlobalState owner, ExecutionOptions executionOptions, String[] arguments) in c:\smoke\ws-24.0\Invantive.Data.Hub\src\Invantive.Producer.Data.Hub\QueryEngine.cs:line 396.
12:59:36.578 itgenadm010: Discovered one database for Easyflex.
12:59:36.578 itgenadm010: Discovered one database for Wikipedia.
12:59:36.578 itgenadm010: Discovered one database for openspending.nl.
12:59:36.578 itgenadm010: Discovered one database for ActiveCampaign.
12:59:36.578 itgenadm010: Discovered one database for Tweede Kamer (NL).
12:59:36.578 itgenadm010: Discovered one database for Robaws.
12:59:36.578 itgenadm010: Discovered one database for Autotask.
12:59:36.578 itgenadm010: Discovered one database for Minox.
12:59:36.578 itgenadm003: Discovered 7 databases for Exact Online for Invantive Business.
12:59:36.578 itgenadm010: Discovered one database for GitLab.
12:59:36.578 itgenadm010: Discovered one database for PayPal.
12:59:36.578 itgenadm010: Discovered one database for Dropbox.
12:59:36.578 itgenadm003: Discovered 7 databases for Exact Online.
12:59:36.578 itgenadm010: Discovered one database for Gripp CRM.
12:59:36.578 itgenadm010: Discovered one database for cbs.nl.
12:59:36.578 itgenadm010: Discovered one database for Roller.
12:59:36.578 itgenadm010: Discovered one database for Odoo.
12:59:36.578 itgenadm010: Discovered one database for Salesforce.
12:59:36.578 itgenadm010: Discovered one database for Knack.
12:59:36.578 itgenadm010: Discovered one database for Visma.net for Invantive Business.
12:59:36.578 itgenadm010: Discovered one database for Invantive Bridge Online.
12:59:36.578 itgenadm010: Discovered one database for LinkedIn.
12:59:36.578 itgenadm010: Discovered one database for YouTrack.
12:59:36.578 itgenadm003: Discovered 2 databases for Atlassian Confluence.
12:59:36.578 itgenadm010: Discovered one database for EDIFACT.
12:59:36.578 itgenadm010: Discovered one database for Kadaster.
12:59:36.578 itgenadm010: Discovered one database for NASA.
12:59:36.578 itgenadm010: Discovered one database for loket.nl (SOAP).
12:59:36.578 itgenadm010: Discovered one database for Visma Severa.
12:59:36.578 itgenadm003: Discovered 2 databases for Teamleader Focus.
12:59:36.578 itgenadm010: Discovered one database for Visma AccountView.
12:59:36.578 itgenadm003: Discovered 2 databases for JIRA Service Desk.
12:59:36.578 itgenadm010: Discovered one database for XAF 3.2 for Invantive Business.
12:59:36.578 itgenadm003: Discovered 2 databases for JIRA Cloud.
12:59:36.578 itgenadm010: Discovered one database for AFAS Online.
12:59:36.578 itgenadm010: Discovered one database for Twinfield.
12:59:36.578 itgenadm010: Discovered one database for XAS 7.0.
12:59:36.578 itgenadm010: Discovered one database for Bouw7.
12:59:36.578 itgenadm010: Discovered one database for XAF 3.1.
12:59:36.578 itgenadm010: Discovered one database for DocumentCloud.
12:59:36.578 itgenadm010: Discovered one database for StackExchange.
12:59:36.578 itgenadm010: Discovered one database for Facebook.
12:59:36.578 itgenadm010: Discovered one database for Foxpro.
12:59:36.578 itgenadm010: Discovered one database for Invantive Business Dummy.
12:59:36.578 itgenadm010: Discovered one database for Simplicate.
12:59:36.578 itgenadm010: Discovered one database for ECB Exchange Rates.
12:59:36.578 itgenadm010: Discovered one database for Tixly.
12:59:36.578 itgenadm010: Discovered one database for Teamleader Orbit Reporting.
12:59:36.578 itgenadm010: Discovered one database for Mendix.
12:59:36.578 itgenadm010: Discovered one database for SnelStart.
12:59:36.578 itgenadm009: Discovered no databases for SQL Server.
12:59:36.578 itgenadm010: Discovered one database for Logius Centrale OIN Raadpleegvoorziening.
12:59:36.578 itgenadm010: Discovered one database for XAA 3.0.
12:59:36.578 itgenadm010: Discovered one database for Open Exchange Rates.
12:59:36.578 itgenadm010: Discovered one database for XAF 3.0.
12:59:36.578 itgenadm010: Discovered one database for SWIFT MT940 Rabobank.
12:59:36.578 itgenadm010: Discovered one database for Teamleader Orbit.
12:59:36.578 itgenadm010: Discovered one database for Yuki.
12:59:36.578 itgenadm010: Discovered one database for loket.nl (REST).
12:59:36.578 itgenadm010: Discovered one database for Microsoft OneNote.
12:59:36.578 itgenadm010: Discovered one database for Microsoft Graph.
12:59:36.578 itgenadm010: Discovered one database for FTP(s).
12:59:36.578 itgenadm010: Discovered one database for Mollie.
12:59:36.578 itgenadm010: Discovered one database for Chargebee.
12:59:36.578 itgenadm010: Discovered one database for Atom 1.0.
12:59:36.578 itgenadm010: Discovered one database for ionBIZ.
12:59:36.578 itgenadm010: Discovered one database for Freshdesk.
12:59:36.578 itgenadm010: Discovered one database for OpenArch.
12:59:36.578 itgenadm010: Discovered one database for Company.info.
12:59:36.578 itgenadm010: Discovered one database for Sendinblue.
12:59:36.578 itgenadm010: Discovered one database for Nmbrs.
12:59:36.578 itgenadm010: Discovered one database for Discourse.
12:59:36.578 itgenadm010: Discovered one database for HubSpot.
12:59:36.578 itgenadm010: Discovered one database for XAA 3.1.
12:59:36.578 itgenadm010: Discovered one database for Dummy.
12:59:36.578 itgenadm010: Discovered one database for XAF 1.0.
12:59:36.578 itgenadm010: Discovered one database for rdw.nl.
12:59:36.578 itgenadm010: Discovered one database for EZ-base.
12:59:36.578 itgenadm010: Discovered one database for Zoom.
12:59:36.578 itgenadm010: Discovered one database for XAF 3.2.
12:59:36.578 itgenadm010: Discovered one database for VirusTotal.
12:59:36.578 itgenadm010: Discovered one database for RSS 2.0.
12:59:36.578 itgenadm010: Discovered one database for Visma.net Financials.
12:59:36.626 Exclamation itgeneuy097: Registry is not supported on this platform.
An unknown error occurred.
12:59:36.628 Question itgencun002: Show details? Question? [y/N]
y
12:59:39.383 System.PlatformNotSupportedException
System.AggregateException
   at Microsoft.Win32.RegistryKey.OpenBaseKey(RegistryHive hKey, RegistryView view)
   at Invantive.Data.Providers.Odbc.OdbcDataSources.DiscoverRegistryView(GlobalState owner, ExecutionOptions executionOptions, RegistryView registryView)
   at Invantive.Data.Providers.Odbc.OdbcDataSources.A(GlobalState, ExecutionOptions executionOptions)
   at Invantive.Data.Providers.Odbc.OdbcDataSources.GetOdbcDataSources(GlobalState owner, ExecutionOptions executionOptions)
   at Invantive.Data.Providers.Odbc.OdbcProvider.GetOdbcDataSources(GlobalState owner, ExecutionOptions executionOptions)
   at Invantive.Data.Providers.Odbc.OdbcProvider.Discover(GlobalState owner, ExecutionOptions executionOptions, SqlExecutionStep sqlExecutionStep)
   at Invantive.Data.ConnectionManager.g.A()
   at System.Threading.Tasks.Task`1.InnerInvoke()
   at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location ---
   at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread)
**** 12:59:39.387 Error itgenube182: itgenbed015: Registry is not supported on this platform.

For support go to https://forums.invantive.com.

12:59:39.387 itgendhb219: End program execution with exit code 5.
12:59:39.387 itgendhb068: Program finished on 3/22/2024 12:59:39 PM.
itgenpgm001: Application finished

Linux is a supported platform.

What download location (URL with the zip) was used to start the multi-platform version of Invantive Data Hub?

This link: https://download.invantive.com/current/Invantive%20Data%20Hub-linux-x64-net8.0-current.zip

Under the heading ‘Multi-Platform For Linux’. I have installed .NET version 6.

I just switched from .NET 6 to .NET 8 and still get the same error message. I’m not entirely sure whether Invantive Hub is using this OS version or a bundled one.

Anyways, this is the command I used:

sudo apt install dotnet-runtime-8.0

Reproduced problem as follows using release 24.0.108 with net6.0 on arm64 on a new device:

FOLDER=<<path>>
mkdir $"{FOLDER}"
cd $"{FOLDER}"
#
# Install dotnet runtime 6.0
#
yum install dotnet-runtime-6.0
#
# Download.
#
wget https://download.invantive.com/release/msi/Invantive%20Data%20Hub-linux-arm64-net6.0-24.0.108.zip
#
# Unwrap.
#
unzip *.zip
cd smoke/ws-24.0/distribute/tmp/Invantive\ Data\ Hub-linux-arm64-net6.0-24.0.108/
chmod +x Invantive.Producer.Data.Hub
./Invantive.Producer.Data.Hub

Enter following input:

  • T: Load trial license.
  • 2: Acknowledge agreement.
  • y: Acknowledge.
  • E: Exit menu.
  • Error occurs.
  • n: Do not show details.

Tail of output:

16:25:12.305 itgenadm010: Discovered one database for ECB Exchange Rates.
Exception during boot: System.AggregateException: One or more errors occurred. (Registry is not supported on this platform.)
 ---> System.PlatformNotSupportedException: Registry is not supported on this platform.
   at Microsoft.Win32.RegistryKey.OpenBaseKeyCore(RegistryHive hKey, RegistryView view)
   at Invantive.Data.Providers.Odbc.OdbcDataSources.DiscoverRegistryView(GlobalState owner, ExecutionOptions executionOptions, RegistryView registryView)
   at Invantive.Data.Providers.Odbc.OdbcDataSources.A(GlobalState , ExecutionOptions executionOptions)
   at Invantive.Data.Providers.Odbc.OdbcProvider.Discover(GlobalState owner, ExecutionOptions executionOptions, SqlExecutionStep sqlExecutionStep)
   at Invantive.Data.ConnectionManager.G.A()
   at System.Threading.Tasks.Task`1.InnerInvoke()
   at System.Threading.Tasks.Task.<>c.<.cctor>b__272_0(Object obj)
   at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location ---
   at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread)
   --- End of inner exception stack trace ---
   at System.Threading.Tasks.Task.WaitAllCore(Task[] tasks, Int32 millisecondsTimeout, CancellationToken cancellationToken)
   at Invantive.Producer.AutoDiscoveryTextForm.Show(GlobalState owner, ExecutionOptions executionOptions)
   at Invantive.Producer.ConsoleUserInteraction.OpenAutoDiscoveryDialog(GlobalState owner, ExecutionOptions executionOptions, Boolean discoveryRequired, Boolean askedDiscovery)
   at Invantive.Producer.UtilityBaseCore.OpenAutoDiscoveryDialog(GlobalState owner, ExecutionOptions executionOptions, Boolean discoveryRequired, Boolean askedDiscovery)
   at Invantive.Producer.UtilityBaseCore.OpenAutoDiscoveryDialogWhenNecessary(GlobalState owner, ExecutionOptions executionOptions)
   at Invantive.Producer.Data.Hub.QueryEngine.Run(GlobalState owner, ExecutionOptions executionOptions, String[] arguments) in c:\smoke\ws-24.0\Invantive.Data.Hub\src\Invantive.Producer.Data.Hub\QueryEngine.cs:line 396.
16:25:12.469 Exclamation itgeneuy097: Registry is not supported on this platform.
An unknown error occurred.
16:25:12.485 Question itgencun002: Show details? Question? [y/N]
n
**** 16:25:14.594 Error itgenube182: itgenbed015: Registry is not supported on this platform.

For support go to https://forums.invantive.com.

16:25:14.594 itgendhb219: End program execution with exit code 5.
16:25:14.594 itgendhb068: Program finished on 03/24/2024 16:25:14.
itgenpgm001: Application finished

The problem also occurs with https://download.invantive.com/release/msi/Invantive%20Data%20Hub-linux-arm64-net6.0-windows-24.0.108.zip

Occurrence of the problem is not bad, but the error should not be fatal.

An improvement will be made to more gracefully handle this condition.

When available and tested the version will be listed in a separate reply.

A new release 24.0.109 solves the incorrect System.PlatformNotSupportedException.

It is available as https://download.invantive.com/current/Invantive%20Data%20Hub-linux-x64-net8.0-current.zip with new contents.

1 like

Awesome, thanks!

Just a quick, low-priority, question, though: I see in the URL net-8.0. Does this imply that it is better to run the application with .NET 8.0? Or is 6.0 fine?

It will only run on net8.0 or compatible versions (such as maybe net9).

Oh ok. Just a quick note then. On the downloads page it says the following:

The multi-platform version is for use on Windows, MacOS and Linux, and requires .net Runtime 6 to be present.

Might be worthwhile to update this then :slight_smile:

Thanks for the problem report! The text has been corrected.