✨ Community just got smarter! Our all-new AI search is live! ask anything in the search bar, get instant answers.

Authentication failed

lock
push_pin
done
Besvarat
9

I am trying to connect to a onprem 11.10.725.0 database but I get the error: SoException: Missing dialect for database Major: 'MSSQL', Minor: '16'.

What does it mean?

Source: "SoDataBase"

Stacktrace:

   at SuperOffice.Data.SoConnection..ctor(String userName, String password)
   at SuperOffice.Security.Principal.NSLocalAuthenticator.Authenticate(IEnumerable`1 identities)
   at SuperOffice.SoContext.Authenticate(ClaimsIdentitiesBuilder identitiesBuilder)

6. maj 2026 | 01:08 em

Allt Svar (9)

Hej Martin
Jag använde min copilot agent kopplad mot web o community. Den sade:

Här är en kort, tydlig och forum‑vänlig sammanfattning du kan posta rakt av 👇


❗ Missing dialect for database Major: MSSQL, Minor: 16

Sammanfattning:
Detta fel beror på en versionsmismatch mellan SuperOffice och SQL Server.

  • SQL Server 2022 rapporterar version Major 16
  • SuperOffice 11.10.725.0 saknar stöd (dialect) för MSSQL 16
  • Resultat: NetServer kan inte starta → SoException: Missing dialect

Viktigt:
SuperOffice behöver en databasspecifik SQL dialect för varje stödd SQL‑version. Om databasen är nyare än vad din SuperOffice‑build känner till, uppstår detta fel.


✅ Minsta SuperOffice‑version som stöder SQL Server 2022

SuperOffice 10.1.6 (onsite)
Detta är första versionen som är officiellt testad och stöder SQL Server 2022.


🔧 Rekommenderade lösningar

  1. Uppgradera SuperOffice till en version/build som stöder SQL Server 2022 (rekommenderat och supportat)
  2. Alternativt: Kör databasen på SQL Server 2019
  3. ⚠️ Ej rekommenderat: Tvinga DatabaseMinor=15 i config – kan fungera tillfälligt men är inte supportat

🧠 Slutsats

Felet är korrekt och förväntat.
SuperOffice 11.10.725.0 + SQL Server 2022 är ingen giltig kombination.


Hoppas detta sparar tid för fler som springer på samma problem 👍



//Anders

6. maj 2026 | 02:27 em

Lite mer info – SuperOffice 11 och SQL Server 2022

Minsta rekommenderade SuperOffice 11‑build som stöder SQL Server 2022 är:
👉 SuperOffice 11.12.675.0


Varför just 11.12.675.0?

  • SQL Server 2022 rapporterar Major version 16
  • Detta kräver att NetServer innehåller MSSQL‑16‑dialekten
  • Äldre 11‑builds (t.ex. 11.10.725.0) saknar denna dialect och ger felet:

    Missing dialect for database Major: MSSQL, Minor: 16

  • SuperOffice 11.12 är första 11‑versionen där NetServer‑uppdateringar ligger efter den period då SQL Server 2022 är officiellt testad och stödd av SuperOffice (enligt kompatibilitetsrapporter och NetServer release notes)

Rekommendation i praktiken

SuperOffice 11‑build SQL Server 2022
LT 11.10.x ❌ Saknar MSSQL‑16‑dialekt
11.12.675.0 ✅ Minsta rekommenderade
Nyare 11.x

Slutsats

Om du kör SQL Server 2022:

  • ✅ Uppgradera minst till SuperOffice 11.12.675.0
  • 🔁 Alternativt: kör databasen på SQL Server 2019 tills uppgradering är gjord

Möjlig workaround (ej supportad)

Man kan testa att:

  • sätta DB compatibility level = 15
  • samt justera web config:

 

add key="DatabaseMajor" value="MSSQL" 
add key="DatabaseMinor" value="16" 

 

⚠️ Detta är inte supportat och bör endast ses som en tillfällig workaround.


/Anders

6. maj 2026 | 02:40 em

Thank you for your help, but where do I download 11.12.675.0?

6. maj 2026 | 05:00 em

I actually looked at this and thought that SQL 22 was OK

But then this means that only up to 10.1.6 has been tested?

 

 

6. maj 2026 | 05:16 em

Tested with MSSQL 2019, and gets the same error: SoException: Missing dialect for database Major: 'MSSQL', Minor: '15'.

6. maj 2026 | 06:14 em
Ok, Then I do not know how to solve this. (There are a planned 11.13 release for on prem next week. )
I know there were some issues discussed with the 11.10 release regarding to windows AD auth..Cant find that link now. Maybe it is related some how?
Btw how are you trying to connect to the database ? Just via the SO webapplication GUI or some custom code of yours?
//Anders
7. maj 2026 | 08:39 fm

It is my own exe-app. The SoAppConfig works.

This is my test code that fails with error.

string fullPath = Path.Combine(ExePath, "appsettings.json");
            
IConfigurationRoot implementationInstance = new Microsoft.Extensions.Configuration.ConfigurationBuilder().AddJsonFile(fullPath).Build();

Startup startup = new Startup((IConfiguration)implementationInstance);
ServiceCollection services = new ServiceCollection();

services.AddSingleton((IConfiguration)implementationInstance);
//services.AddNetServerCoreForAsyncLocalProcess((IConfiguration)implementationInstance);
//services.AddSoDatabase((IConfiguration)implementationInstance);
startup.ConfigureServices((IServiceCollection)services);
startup.Configure((IServiceProvider)services.BuildServiceProvider());

string serial = SoDatabase.GetCurrent().SerialNumber;
 
7. maj 2026 | 09:39 fm

Ok, something must be wrong there then. (changes made in newer SO 11.x versions).  For what vesion are  u sure the above code works?
If I continue to ask my AI it say:

======================================

Här är en kort och forum‑anpassad sammanfattning, med fokus på lösningen i koden:

 

Missing dialect (MSSQL 16) i custom console‑app – lösning

Felet beror oftast inte på SQL Server, utan på att NetServer inte är korrekt initialiserad i en command‑line‑applikation.

I en console‑app måste NetServer och SoDatabase explicit registreras. Till skillnad från Web/Win‑klienter sker detta inte automatiskt.

 

Vanliga orsaker

  • AddNetServerCore… och/eller AddSoDatabase är inte registrerade
  • RegisterWithNetServer() saknas
  • Felaktig eller ofullständig appsettings.json
  • Appen refererar äldre NetServer‑DLL:er utan MSSQL‑16‑dialekt

 

Rekommenderad minimal lösning i kod

 

var config = new ConfigurationBuilder()

    .AddJsonFile("appsettings.json", false)

    .Build();

var services = new ServiceCollection();

services.AddSingleton

services.AddNetServerCoreForAsyncLocalProcess(config);

services.AddSoDatabase(config);

var provider = services.BuildServiceProvider();

provider.RegisterWithNetServer();

var serial = SoDatabase.GetCurrent().SerialNumber;

 

Viktigt

  • Säkerställ att appsettings.json innehåller full SuperOffice‑konfiguration
  • Kontrollera att DLL‑versionerna matchar serverns SuperOffice‑build
  • Annars saknas MSSQL‑16‑dialekten → Missing dialect for database Major: MSSQL, Minor: 16

 

Kort sagt:

Detta är ett bootstrap/DI‑problem i custom‑koden, inte ett SQL‑problem.

============================
OBS, kan ju vara fel så klart...har inte någon miljö (ännu) där jag själv kan testa detta.

//Anders 

7. maj 2026 | 03:07 em

Thank you! Stil the same error.

In appSettings.json, what is a full SuperOffice configuration, where can I see it?

{
  "Logging": {
    "LogLevel": {
      "Default": "Error",
      "Microsoft": "Error",
      "SuperOffice": "Error",
      "SuperOffice.Online.Fileset.Common.MailKit.Loggers.MailKitNetCoreProtocolLogger": "Information"
    }
  },
  "SoArc": {
    "UseAzureBlobStorage": false
  }
}

8. maj 2026 | 07:53 fm

I still can't get it to run, I started from zero again, with a small Net 10.0 Console app. Maybe someone want to test it themself: https://download.beezy365apps.com/Com/SuperOfficeConsole.zip

I am not sure about the appSettings.json, but if needed it is the in the solution folder.

This is the code (all of it):


using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using SuperOffice;
using SuperOffice.Data;

var ExePath = Path.GetDirectoryName(System.Environment.ProcessPath);
string appsettings = Path.Combine(ExePath, "appsettings.json");
var config = new Microsoft.Extensions.Configuration.ConfigurationBuilder()
    //.AddJsonFile(appsettings, false)
.Build();

var services = new ServiceCollection();
services.AddSingleton(config);
services.AddNetServerCoreForAsyncLocalProcess(config, (Action)(options => { }));
services.AddSoDatabase(config);
//services.AddSingleton();

var provider = services.BuildServiceProvider();
provider.RegisterWithNetServer();

using var session = SoSession.Authenticate("MA", "ma");
var serial = SoDatabase.GetCurrent().SerialNumber;
Console.WriteLine(serial);

Console.ReadLine();
3 h, 14 m sedan | 02:19 em

Lägg till svar