[Gelöst] BC22 - kein Zugriff auf lokale dev-env

10. Januar 2025 15:42

Hallo zusammen

und schon einmal vorweg vielen Dank für die Unterstützung.

Ich versuche auf meine lokale Business Central (22.0) Umgebung zuzugreifen um eine lokale Entwicklungsumgebung aufzubauen. Leider scheitert dies bereits am Zugriff über den Webclient - bei VSCode bin ich noch garnicht.
Ich versuche die lokale Adresse http://localhost:8080/BC220/ aufzurufen. Dabei erhalte ich ein Anmeldefenster, kann mich aber weder mit meinem Windows-Account noch mit einem lokalen Account anmelden.
Weder die Konfiguration des Credential Type "NavUserPassword" noch "Windows" ändert etwas daran.
Der IIS ist imho korrekt konfiguriert.
Browser cashes wurde geleert bzw. im Private Mode getestet.
In der Host-Datei ist localhost eingetragen.
Der Dienst läuft....
Ich bin ratlos.
Nach mehrtägiger Internetrecherche und unzähliger Tests finde ich leider keine Lösung. Daher die Frage an dieser Stelle, gerne liefere ich nähere Informationen zu meiner Systemumgebung.
Windows11, SQL Server 15.0.2.2130.3, Standard Cronus Demo DB (auch wenn ich diese bei Erfolg gerne auf unsere Test-DB ändern würde), Version: DE Business Central 22.5 (Plattform 22.0.60117.0 + Anwendung 21.8.56995.0), weiteres?

Allerbeste Grüße und nochmals vielen Dank
Philipp
Zuletzt geändert von PKern am 17. Januar 2025 10:19, insgesamt 1-mal geändert.

Re: BC22 - kein Zugriff auf lokale dev-env

11. Januar 2025 18:09

Hi Philipp,

Gibt es denn eine genaue Fehlermeldung?
mit lokaler Entwicklungsumgebung meinst du lokal auf deinem PC/Laptop?
Welchen User hast du denn beim Service hinterlegt, funktioniert der auch nicht, oder ist da der System/Netzwerkdienst hinterlegt?
Kannst du einen User über die Business Central Administration Shell anlegen und nutzen?

Über die Befehle
https://learn.microsoft.com/en-us/power ... tral-ps-24
https://learn.microsoft.com/en-us/power ... tral-ps-24

z.B.:
New-NAVServerUser -ServiceInstanceName ServerInstance -WindowsAccount WindowsAccName
New-NAVServerUserPermissionSet -ServiceInstanceName ServerInstance -WindowsAccount WindowsAccName -PermissionSetId SUPER

Wenn es dir darum geht eine lokale DEV-Umgebung aufzubauen, schau dir mal Docker in Kombination mit BCContainerhelper an, das ist deutlich einfacher/flexibler in der Handhabung als ein komplettes BC System lokal zu installieren.

Gruß!

Re: BC22 - kein Zugriff auf lokale dev-env

14. Januar 2025 15:44

Hallo Julian,

vielen Dank für deine Ausführungen.
Genau, das soll alles bei mir lokal auf dem Notebook laufen, da wir ende des Jahres keine eigenen Server mehr laufen haben wollen.
Hier scheinen einige Sachen zusammen gekommen zu sein - wie so oft und gerne:
- System/Netzwerkdienst (der Dienstbenutzer) ist nun in der lokalen Admingruppe
- anstatt localhost verwende ich nun meinen Computernamen (obwohl ich der Meinung war, dass dies beliebig austauschbar ist)
- mein lokaler Benutzer ist nun in der DB hinterlegt, hat den Lizenztyp 0 und SUPER
Auf die Umgebung komme ich nun per Browser - dafür schon einmal meinen herzlichsten Dank!

Leider lädt VSC die Symbole nicht. Ergo habe ich von dort noch keinen Zugriff auf die Umgebung. Vielleicht fällt dir dazu noch etwas ein:

[2025-01-14 14:33:21.85] Using reference symbols cache paths: [c:\Users\...\Documents\AL\Local2\.alpackages]
[2025-01-14 14:33:21.85] Sending request to http://***:7049/BC220/dev/packages?publ ... nt=default
[2025-01-14 14:33:21.86] Sending request to http://***:7049/BC220/dev/packages?publ ... nt=default
[2025-01-14 14:33:21.86] Sending request to http://***:7049/BC220/dev/packages?publ ... ame=System Application&versionText=22.5.0.0&appId=00000000-0000-0000-0000-000000000000&tenant=default
[2025-01-14 14:33:21.86] Sending request to http://***:7049/BC220/dev/packages?publ ... pName=Base Application&versionText=22.5.0.0&appId=437dbf0e-84ff-417a-965d-ed2bb9650972&tenant=default
[2025-01-14 14:33:22.01] The request for path /BC220/dev/packages?publisher=Microsoft&appName=System&versionText=22.0.0.0&appId=8874ed3a-0643-4247-9ced-7a7002f7135d&tenant=default failed with code NotFound. Reason: No published package matches the provided arguments.
[2025-01-14 14:33:22.19] The following dependencies will be queried for propagated dependencies:
System Application by Microsoft (22.5.0.0)
[2025-01-14 14:33:22.19] Sending request to http://***:7049/BC220/dev/packages?publ ... ame=System Application&versionText=22.5.0.0&appId=63ca2fa4-4f03-4f2b-a480-172fef340d3f&tenant=default
[2025-01-14 14:33:22.27] Could not download reference symbols. Please ensure that:
1. The correct server name and instance are specified in the launch.json file.
2. The correct application version is specified in the app.json file.
3. The dependencies are correctly specified in the app.json file.

Aus meiner Sicht sind die Konfigurationen korrekt:
app.json
{
"id": "048c62ce-dd2f-4609-b9e3-6e139d4d38ef",
"name": "Local2",
"publisher": "Default Publisher",
"version": "1.0.0.0",
"brief": "",
"description": "",
"privacyStatement": "",
"EULA": "",
"help": "",
"url": "",
"logo": "",
"dependencies": [
{
"appId": "00000000-0000-0000-0000-000000000000",
"name": "System Application",
"publisher": "Microsoft",
"version": "22.5.0.0"
},
{
"appId": "437dbf0e-84ff-417a-965d-ed2bb9650972",
"name": "Base Application",
"publisher": "Microsoft",
"version": "22.5.0.0"
}
],
"screenshots": [],
"platform": "22.0.0.0",
"application": "22.5.0.0",
"idRanges": [
{
"from": 50100,
"to": 50149
}
],
"resourceExposurePolicy": {
"allowDebugging": true,
"allowDownloadingSource": true,
"includeSourceInSymbolFile": true
},
"runtime": "11.0",
"features": [
"NoImplicitWith"
]
}

launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": "MyName",
"request": "launch",
"type": "al",
"environmentType": "OnPrem",
"server": "http://***",
"serverInstance": "BC220",
"authentication": "Windows",
"startupObjectId": 22,
"startupObjectType": "Page",
"breakOnError": "All",
"launchBrowser": true,
"enableLongRunningSqlStatements": true,
"enableSqlInformationDebugger": true,
"tenant": "default",
"usePublicURLFromServer": true
}
]
}

Verbinden soll sich das ganze hiermit: Version: DE Business Central 22.5 (Plattform 22.0.60117.0 + Anwendung 21.8.56995.0)

PS C:\> Get-NAVServerInstance -ServerInstance BC220
ServerInstance : MicrosoftDynamicsNavServer$BC220
DisplayName : Microsoft Dynamics 365 Business Central Server [BC220]
State : Running
ServiceAccount : NT-AUTORITÄT\Netzwerkdienst
Version : 22.0.55180.0
Default : True

PS C:\> Get-NAVAppInfo -ServerInstance BC220 -Tenant default
Id : 63ca2fa4-4f03-4f2b-a480-172fef340d3f
Name : System Application
Version : 22.5.59966.60134
Publisher : Microsoft
ExtensionType : ModernDev
Scope : Global
Tenant :

Re: BC22 - kein Zugriff auf lokale dev-env

14. Januar 2025 17:25

FYI - zu meinem Zwischenstand:
Ich arbeite mich gerade an den Vorschlägen ab, die ChatGPT liefert um die System.app erneut zu veröffentlichen, damit VSC anschließend symbols downloaden kann.
Leider habe ich keine Entwicklerlizenz. So wie ich das verstehe könnte das damit funktionieren:

PS C:\> Publish-NAVApp -ServerInstance BC220 -Path "C:\Temp\System.app"
Publish-NAVApp : Your program license does not allow you to publish 'Company Triggers'.

Entpacken und die "Company Trigger entfernen" fällt auch flach, da das Entpacken der App Datei fehlschlägt.

Gibt es eine andere Möglichkeit, wie ich VSC die System.app bereitstellen kann? Bei mir hat der komplette Ordner "AL Development Environment" neben dem "Client" und dem "Web Client" Verzeichnis gefehlt. Dies konnte ich mit Hilfe eines PS Downloads dann beschaffen. Leider scheitere ich an diesem einen kleinen Schritt ;)

Re: BC22 - kein Zugriff auf lokale dev-env

16. Januar 2025 13:32

ich kann dir nur docker empfehlen
bc-containerhelper, um die bc-container zu erstellen

dann brauchst du dich schon mal nicht mit ner lokalen installation rumärgern.

Code:
{
"appId": "00000000-0000-0000-0000-000000000000",
"name": "System Application",
"publisher": "Microsoft",
"version": "22.5.0.0"
},


warum hat die System Application ne NullGuid als App-ID ???
-> das müsste eigentlich 63ca2fa4-4f03-4f2b-a480-172fef340d3f sein

kann er gar keine Symbole laden?

falls ja, ist das der richtige Port? 7049?? oder hast du was geändert?

->
Entpacken und die "Company Trigger entfernen" fällt auch flach, da das Entpacken der App Datei fehlschlägt.


wozu?`weil chatgpt dir das sagt? lass bitte die Finger davon!

Die SystemApp ist garantiert drin - da brauchst du nix publishen (außer natürlich, du hast die via PS rausgeorgelt, was ich nicht glaube)

Re: BC22 - kein Zugriff auf lokale dev-env

16. Januar 2025 14:18

Hallo,

Als allererstes würde ich mal das chatgpt außen vorlassen. Der ist bei diesen Thema meist nur auf einem LSD-Trip. weil er dazu zu wenig weiß. :roll:

Habe jetzt gerade kein BC22- Projekt am Laufen, aber muss man in der Version überhaupt die dependencies für für System- und Base-App setzen?

Gruß Fiddi

Re: BC22 - kein Zugriff auf lokale dev-env

16. Januar 2025 15:06

Also nun läuft das Ganze.
Nachdem ich mir die system.app vom Live-Server geholt hatte und in den von VSC verwendeten Ordner gepackt hatte, konnte der seine symbole laden und ich "Hello World" publishen ;)

Keine Ahnung was da nicht oder falsch installiert wurde.
Früher was einfach alles besser ;)

zu ChatGPT - mir ist durchaus bewusst, dass man die Ausführungen mit Vorsicht zu betrachten hat. Dass er zu wenig weis - bzw. der Experte präziseres Fachwissen vorweise kann versteht sich von selbst. So gar keine Ahnung würde ich der Kiste aber nicht unterstellen.

Vielen Dank an alle die gelesen und versucht haben zu helfen.
Euch ne gute Restwoche und ein schönes WE

Re: BC22 - kein Zugriff auf lokale dev-env

17. Januar 2025 09:51

schön das es geklappt hat - dennoch würde ich an dieser Stelle wieder auf Docker & bc-containerhelper verweisen.
Mir ist bewusst, dass man als Inhouse-Dev vermutlich nicht mit 20 verschiedenen Versionen unterwegs ist, aber selbst bei schon 2 unterschiedlichen BC-Versionen macht sich docker 3mal besser, als eine lokale BC-Installation.

Re: BC22 - kein Zugriff auf lokale dev-env

17. Januar 2025 10:15

Hallo,
Mir ist bewusst, dass man als Inhouse-Dev vermutlich nicht mit 20 verschiedenen Versionen unterwegs ist, aber selbst bei schon 2 unterschiedlichen BC-Versionen macht sich docker 3mal besser, als eine lokale BC-Installation.


Warum?

Ich habe auf meinem Rechner ungefähr 30 unterschiedliche Versionen von NAV2009 bis BC25 ohne Docker am laufen. Das ist für mich wesentlich einfacher und Ressourcen schonender, als das als Docker am Laufen zu haben. (und mit dem Servicetieradmin-Tool auch einfacher zu administrieren und zu benutzen)

Gruß Fiddi

Re: [ Gelöst ] BC22 - kein Zugriff auf lokale dev-env

20. Januar 2025 16:01

fiddi hat geschrieben:Ich habe auf meinem Rechner ungefähr 30 unterschiedliche Versionen von NAV2009 bis BC25 ohne Docker am laufen. Das ist für mich wesentlich einfacher und Ressourcen schonender, als das als Docker am Laufen zu haben. (und mit dem Servicetieradmin-Tool auch einfacher zu administrieren und zu benutzen)


und alles funktioniert ohne irgendwelche Probleme, ohne das du "hacks" benutzen musst?
ich meine die AdminShell für die korrekte Version zu öffnen und da drin zu arbeiten, oder auch mal ne frische WebServerInstanz hinstellen?

wenn das so reibungslos klappt, muss ich was falsch machen.
wäre daran interessiert, wie das funktioniert, denn auch in Kundenumgebungen habe ich bei gleichzeitig installierten unterschiedlichen Versionen meine Herausforderungen

Re: [ Gelöst ] BC22 - kein Zugriff auf lokale dev-env

21. Januar 2025 05:41

Hallo,
ich meine die AdminShell für die korrekte Version zu öffnen und da drin zu arbeiten, oder auch mal ne frische WebServerInstanz hinstellen?


Bei mir funktioniert das so:

1. Die für die Version und Funktion richtige Powershell als Administrator starten (Bei BC23 oder BC24 oder 24 war sich MS nicht so sicher, was sie benutzen wollen).
2. Aus dem entsprechenden BC-Service- Verzeichnis mit Import-Module NavAdminTool.ps1 die entsprechende Admin- Shell laden.

Bisher hatte ich damit keine Probleme. Muss allerdings auch zugeben, dass ich es nicht häufig benutze.
Aber dafür ein PS-Batch zu schreiben, der den Service abfragt und dann die richtige PS startet und das richtige Modul lädt dürfte kein Hexenwerk sein.

Die Ports der Dienste erhalten bei mir grundsätzlich die Versionsnummer mal 10000 (such bei OnPrem- Kunden) mehrere Dienste gleicher Version unterscheide ich normalerweise bei den 100er- oder 10er-Ports.
Administrieren und einrichten der Dienste läuft bei mir über das Servicetier-Administration- Tool. Das funktioniert auch bei den aktuellen BC- Versionen noch super.

Wenn du allerdings irgend etwas spezielles externes benötigst z.B. Offce- Integration für eine bestimmte Version, dann kann das schon problematisch werden, weil die DLLs lokal installiert sind, Das dürfte auch mit Docker nicht ganz einfach werden.
Aber der Teufel steckt bekanntlich im Detail. Deshalb will ich nicht behaupten, dass es immer funktioniert.

Gruß Fiddi

Re: [Gelöst] BC22 - kein Zugriff auf lokale dev-env

21. Januar 2025 19:03

ja Major zu Major funktioniert das schon - nur blöd, wenn du mehrere CUs drauf hast -> dann steht in der NavAdminTool.ps1 der Pfad z.B.

HKLM:\SOFTWARE\Microsoft\Microsoft Dynamics NAV\140\Service

welcher nicht der korrekte für das CU ist - jedenfalls so meine bisherigen Erfahrungen