Bodo's Dynamics NAV und Business Central Blog
Bodo ist ein Dynamics NAV Urgestein. Er programmiert Navision seit DOS Zeiten und hat auch keine Scheu vor .NET und schon gar nicht vor Dynamics 365 oder Azure. Viele Neueinsteiger wurden von ihm in den letzten Jahren zu Entwicklern ausgebildet. In diesem Blog veröffentlichen Bodo und andere Superhelden Interessantes aus der Welt von Dynamics 365 Business Central / Dynamics NAV und Microsoft Azure.SOAP Services in einer Multi-Tenant-Umgebung oder „NavTenantNotFoundException”
Tags: tenant, webservices, fehlerStellen Sie sich vor, Sie betreiben eine Dynamics NAV 2015 Multi-Tenant-Umgebung. Der NAV Server für die Tenants ist mit dem Credential Type „NavUserPassword“ konfiguriert. Wenn Sie die SOAP Services aktivieren (z.B. für Jet Express), können Sie einen ersten Schnelltest durchführen, in dem Sie die Liste der veröffentlichten Web Services abfragen. In unserem Beispiel für den Tenant „cronus“:
https://[Servername]:[Port]/DynamicsNAV01/WS/Services?tenant=cronus
Aufgrund des Credential Types „NavUserPassword“ werden Sie nach Ihrem Benutzernamen und Kennwort gefragt:
Der Server quittiert leider diesen Anmeldeversuch mit einer Warnmeldung im Ereignisprotokoll:
...
Message: A tenant was not specified, but is needed because the system has multiple tenants. Contact your system administrator.
...
StackTrace:
at Microsoft.Dynamics.Nav.Runtime.NavTenantCollection.get_DefaultTenant()
at Microsoft.Dynamics.Nav.Runtime.NavTenantCollection.TryGetTenantById(String tenantId, NavTenant& tenant, Boolean includeSystemTenant, Boolean includeFailed)
...
Warum funktioniert die Anmeldung nicht? Und warum sagt das System, wir hätten keinen Tenant angegeben? Haben wir doch mit „?tenant=cronus“ gemacht!
Die Lösung ist denkbar einfach, aber leider nicht dokumentiert. Bei der Anmeldung müssen Sie Ihrem Benutzernamen den Namen des Tenant voranstellen: [Tenant]\[Benutzername]:
PS: Special Thanks to Arvind from Microsoft Support.