Gelöst Sage behauptet ich sei kein NamedUser

Arne Drews

Mitglied
Moin,

Ich stocke gerade bei der Erzeugung einer ERP-Session, dabei gehe ich wie folgt vor:
C#:
try
{
    using (ErpSession = Sagede.OfficeLine.Engine.ApplicationEngine.CreateSession("OLReweAbf", ApplicationToken.Abf, null, new NamePasswordCredential()))
    {
        if (ErpSession == null)
            throw new Exception("Es konnte keine Sitzung zur Sage 100 hergestellt werden");

        Mandant = ErpSession.CreateMandant((short)1);

        if (Mandant == null)
            throw new Exception($"Es konnte kein Mandanten-Objekt zur Session {ErpSession.Id} erzeugt werden");

        // ...
    }
}
catch (Exception ex)
{
    // ...
}

So gehe ich in anderen Projekten auch ran. Nur behauptet die Sage-Engine ich wäre kein NamedUser:
1752680149214.png

Was aber nicht stimmt, wenn man in den Administrator sieht:
1752680327396.png1752680427789.png

Kann mir jemand sagen, warum die DLL meint, ich wäre kein NamedUser?
 
Das stimmt. Irgendwas schien aber trotzdem fehlerhaft zu sein, weil ich keine Verbindung mehr mit der Sage aufbauen konnte.

Ich habe nochmal etwas recherchiert und denke, das kann mit der C# Sprachversion zusammenhängen.
Die Sage nutzt ja das .NET Framework 4.8, weshalb ich meine Projekte kompatibel dazu entwickle. Per default greift aber Windows/VisualStudio beim 4.8er Framework auf die C# Sprachversion 7.0 zurück.

Da ich jedoch switch-Expressions verwende, benötige ich mind. C# 8.0. Also habe ich für mein Projekt mal die Sprachversion auf latest gesetzt, um immer die aktuellste Sprachversion zu verwenden. Damit scheint es aber Kompatiblitätsprobleme mit den DLLs oder einer davon zu geben.

Ich habe die Sprachversion nun explizit auf 8.0 gesetzt und damit funktioniert es wieder.
Mag sein, dass es auch mit 9.0 oder höher geht ( solange nicht die latest ), aber das habe ich nicht getestet, weil mir 8.0 aktuell reicht.

Ob das die wirkliche Ursache war, kann ich nicht zu 100% sagen, aber für mich sieht es hier so aus.
 
Zurück
Oben