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)
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
- Uppgradera SuperOffice till en version/build som stöder SQL Server 2022 (rekommenderat och supportat)
- Alternativt: Kör databasen på SQL Server 2019
- ⚠️ Ej rekommenderat: Tvinga
DatabaseMinor=15i 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
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:
⚠️ Detta är inte supportat och bör endast ses som en tillfällig workaround.
/Anders
Thank you for your help, but where do I download 11.12.675.0?
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?
Tested with MSSQL 2019, and gets the same error: SoException: Missing dialect for database Major: 'MSSQL', Minor: '15'.
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;
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
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
}
}
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();