Met versie 27 (2025 release wave 2) van Dynamics 365 Business Central liep ik tegen een vervelend probleem aan. Als ik een standaard installatie doe van Business Central, dan werkt alles probleemloos. Echter, als ik probeerde een tweede webclient aan te maken met New-NAVWebServerInstance -server localhost -ServerInstance BC270 -ClientServicesCredentialType Windows -ClientServicesPort 7085 -PublishFolder "C:\Program Files\Microsoft Dynamics 365 Business Central\270\Web Client\WebPublish" -WebServerInstance BC270_2 -ContainerSiteName "Microsoft Dynamics 365 Business Central Web Client" werd de webclient geïnstalleerd, zoals het hoorde. Alles zag er goed uit, behalve dat, wanneer je ernaartoe probeerde te verbinden, het scherm eeuwig op "voorbereiden" blijft staan. Ga je in de Application log (of toepassingslogboek) kijken, dan zie je daar een foutmelding: met gebeurtenis ID 36980:
Category: Prod.Client.WebCoreApp.Controllers.WebSockets.WebSocketController
EventId: 547786868
ConnectionId: 0HNH0ASQ6LSOF
RequestId: 0HNH0ASQ6LSOF:0000000E
RequestPath: /BC270_2/csh
ActionId: 269a9844-bcc2-41b9-94fc-493b8f125676
ActionName: Prod.Client.WebCoreApp.Controllers.WebSockets.WebSocketController.CreateWebSocket (Prod.Client.WebCoreApp)
WebSocket error occurred for ConnectionId: aNWkT0bQTD4HAPVcVpGv0A, ErrorCode: ConnectionClosedPrematurely
Exception:
System.Net.WebSockets.WebSocketException (0x80004005): The remote party closed the WebSocket connection without completing the close handshake.
Het vreemde was dat dit alleen gebeurde op machines waar ook al andere versies van Business Central op staan: op een schone installatie met alleen versie 27 werkte het wel. Maar ja, dat is geen echt werkende oplossing voor ons. Ik vond alleen dit artikel op github maar dat was helaas niet erg behulpzaam. Daarom uiteindelijk de hulp van Microsoft gevraagd, en die leidde naar deze link op Github waarin geclaimed wordt dat het probleem opgelost zou zijn. Daar lijkt het niet op, maar gelukkig gaven ze ook een manier om het wel werkend te krijgen: Zet de sleutel EnableWebSocketCompression op False. Het volgende commando zou dat moeten bewerkstelliggen:
Set-NAVWebServerInstanceConfiguration -WebServerInstance BC270_2 -KeyName EnableWebSocketCompression -KeyValue $False
Een herstart is niet noodzakelijk: de verandering werkte direct.
Ik heb geen idee wat EnableWebSocketCompression doet. het is een nieuwe sleutel in Dynamics365 Business Central, en op deze site van Microsoft wordt die ook niet genoemd.