Server 2019 RDS HTML5 Webclient with Azure Application Proxy - Web Socket Error

%3CLINGO-SUB%20id%3D%22lingo-sub-2006271%22%20slang%3D%22en-US%22%3EServer%202019%20RDS%20HTML5%20Webclient%20with%20Azure%20Application%20Proxy%20-%20Web%20Socket%20Error%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2006271%22%20slang%3D%22en-US%22%3E%3CP%3EHi%20all%2C%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3EI%20have%20a%20small%20Server%202019%20RDS%20environment%20running%20on-prem%20consisting%20of%20three%20servers.%3C%2FP%3E%3CP%3E1%20x%20RDS%20Gateway%2FWeb%20Access%2FBroker%3C%2FP%3E%3CP%3E2%20x%20RDS%20Session%20Hosts%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3EI%20am%20using%20Azure%20Application%20Proxy%20to%20enable%20remote%20working.%20I%20have%20installed%20the%20new%20webclient%20(%2Frdweb%2Fwebclient%2F)%20and%20if%20I%20connect%20via%20the%20App%20proxy%2C%20the%20setup%20works%20perfectly%20for%20accessign%20remote%20apps%20and%20full%20desktop%20while%20making%20use%20of%20the%20RDP%20file%20option%2C%20however%20if%20I%20switch%20to%20the%20HTML5%20browser%20option%2C%20connections%20fail%20and%20I%20receive%20a%20websocket%20error%20(pasted%20below)%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3EBoth%20RDP%20and%20HTML5%20browser%20options%20work%20perfectly%20if%20I%20access%26nbsp%3B%2Frdweb%2Fwebclient%20from%20an%20on-prem%20machine.%20Does%20anyone%20have%20any%20advice%20with%20regards%20RDS%20webclient%20via%20App%20Proxy%3F%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3EPD%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3Ewebsockettransport.cpp(304)%3A%20OnErrorFromJS()%3CBR%20%2F%3Eat%20Object.Logger.a.errorWithoutTimestamp%20(%3CA%20href%3D%22https%3A%2F%2Fdomain.com%2FRDWeb%2Fwebclient%2Fjs%2Fclient.93f1e024.js%3A1%3A2848)%2Cat%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fdomain.com%2FRDWeb%2Fwebclient%2Fjs%2Fclient.93f1e024.js%3A1%3A2848)%2Cat%3C%2FA%3E%20Function.%3CANONYMOUS%3E%20(%3CA%20href%3D%22https%3A%2F%2Fdomain.com%2FRDWeb%2Fwebclient%2Fjs%2Fclient.93f1e024.js%3A5%3A15934)%2Cat%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fdomain.com%2FRDWeb%2Fwebclient%2Fjs%2Fclient.93f1e024.js%3A5%3A15934)%2Cat%3C%2FA%3E%20methodCaller_emscripten%24%24val_%24emscripten%24%24val_emscripten%24%24val%24%20(eval%20at%20new_%20(%3CA%20href%3D%22https%3A%2F%2Fdomain.com%2FRDWeb%2Fwebclient%2Fjs%2Frdcore.eb28ca45.js%3A86%3A1501056%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fdomain.com%2FRDWeb%2Fwebclient%2Fjs%2Frdcore.eb28ca45.js%3A86%3A1501056%3C%2FA%3E)%2C%20%3CANONYMOUS%3E%3A6%3A26)%2Cat%20__emval_call_method%20(%3CA%20href%3D%22https%3A%2F%2Fdomain.com%2FRDWeb%2Fwebclient%2Fjs%2Frdcore.eb28ca45.js%3A86%3A1522590)%2Cat%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fdomain.com%2FRDWeb%2Fwebclient%2Fjs%2Frdcore.eb28ca45.js%3A86%3A1522590)%2Cat%3C%2FA%3E%20S%24a%20(%3CA%20href%3D%22https%3A%2F%2Fdomain.com%2FRDWeb%2Fwebclient%2Fjs%2Frdcore.eb28ca45.js%3A126%3A82431)%2Cat%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fdomain.com%2FRDWeb%2Fwebclient%2Fjs%2Frdcore.eb28ca45.js%3A126%3A82431)%2Cat%3C%2FA%3E%20Djd%20(%3CA%20href%3D%22https%3A%2F%2Fdomain.com%2FRDWeb%2Fwebclient%2Fjs%2Frdcore.eb28ca45.js%3A134%3A115033)%2Cat%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fdomain.com%2FRDWeb%2Fwebclient%2Fjs%2Frdcore.eb28ca45.js%3A134%3A115033)%2Cat%3C%2FA%3E%20invoke_viiiii%20(%3CA%20href%3D%22https%3A%2F%2Fdomain.com%2FRDWeb%2Fwebclient%2Fjs%2Frdcore.eb28ca45.js%3A86%3A1574347)%2Cat%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fdomain.com%2FRDWeb%2Fwebclient%2Fjs%2Frdcore.eb28ca45.js%3A86%3A1574347)%2Cat%3C%2FA%3E%20R%24a%20(%3CA%20href%3D%22https%3A%2F%2Fdomain.com%2FRDWeb%2Fwebclient%2Fjs%2Frdcore.eb28ca45.js%3A126%3A80844)%2Cat%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fdomain.com%2FRDWeb%2Fwebclient%2Fjs%2Frdcore.eb28ca45.js%3A126%3A80844)%2Cat%3C%2FA%3E%20Bjd%20(%3CA%20href%3D%22https%3A%2F%2Fdomain.com%2FRDWeb%2Fwebclient%2Fjs%2Frdcore.eb28ca45.js%3A134%3A114867)%2Cat%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fdomain.com%2FRDWeb%2Fwebclient%2Fjs%2Frdcore.eb28ca45.js%3A134%3A114867)%2Cat%3C%2FA%3E%20invoke_viii%20(%3CA%20href%3D%22https%3A%2F%2Fdomain.com%2FRDWeb%2Fwebclient%2Fjs%2Frdcore.eb28ca45.js%3A86%3A1573937)%2Cat%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fdomain.com%2FRDWeb%2Fwebclient%2Fjs%2Frdcore.eb28ca45.js%3A86%3A1573937)%2Cat%3C%2FA%3E%20H0a%20(%3CA%20href%3D%22https%3A%2F%2Fdomain.com%2FRDWeb%2Fwebclient%2Fjs%2Frdcore.eb28ca45.js%3A126%3A120009)%2Cat%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fdomain.com%2FRDWeb%2Fwebclient%2Fjs%2Frdcore.eb28ca45.js%3A126%3A120009)%2Cat%3C%2FA%3E%20Rfb%20(%3CA%20href%3D%22https%3A%2F%2Fdomain.com%2FRDWeb%2Fwebclient%2Fjs%2Frdcore.eb28ca45.js%3A116%3A167461)%2Cat%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fdomain.com%2FRDWeb%2Fwebclient%2Fjs%2Frdcore.eb28ca45.js%3A116%3A167461)%2Cat%3C%2FA%3E%20zjd%20(%3CA%20href%3D%22https%3A%2F%2Fdomain.com%2FRDWeb%2Fwebclient%2Fjs%2Frdcore.eb28ca45.js%3A134%3A114736)%2Cat%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fdomain.com%2FRDWeb%2Fwebclient%2Fjs%2Frdcore.eb28ca45.js%3A134%3A114736)%2Cat%3C%2FA%3E%20invoke_vii%20(%3CA%20href%3D%22https%3A%2F%2Fdomain.com%2FRDWeb%2Fwebclient%2Fjs%2Frdcore.eb28ca45.js%3A86%3A1573548)%2Cat%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fdomain.com%2FRDWeb%2Fwebclient%2Fjs%2Frdcore.eb28ca45.js%3A86%3A1573548)%2Cat%3C%2FA%3E%20C1a%20(%3CA%20href%3D%22https%3A%2F%2Fdomain.com%2FRDWeb%2Fwebclient%2Fjs%2Frdcore.eb28ca45.js%3A126%3A157205)%2Cat%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fdomain.com%2FRDWeb%2Fwebclient%2Fjs%2Frdcore.eb28ca45.js%3A126%3A157205)%2Cat%3C%2FA%3E%20zjd%20(%3CA%20href%3D%22https%3A%2F%2Fdomain.com%2FRDWeb%2Fwebclient%2Fjs%2Frdcore.eb28ca45.js%3A134%3A114736)%2Cat%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fdomain.com%2FRDWeb%2Fwebclient%2Fjs%2Frdcore.eb28ca45.js%3A134%3A114736)%2Cat%3C%2FA%3E%20invoke_vii%20(%3CA%20href%3D%22https%3A%2F%2Fdomain.com%2FRDWeb%2Fwebclient%2Fjs%2Frdcore.eb28ca45.js%3A86%3A1573548)%2Cat%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fdomain.com%2FRDWeb%2Fwebclient%2Fjs%2Frdcore.eb28ca45.js%3A86%3A1573548)%2Cat%3C%2FA%3E%20D1a%20(%3CA%20href%3D%22https%3A%2F%2Fdomain.com%2FRDWeb%2Fwebclient%2Fjs%2Frdcore.eb28ca45.js%3A126%3A158017)%2Cat%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fdomain.com%2FRDWeb%2Fwebclient%2Fjs%2Frdcore.eb28ca45.js%3A126%3A158017)%2Cat%3C%2FA%3E%20Bjd%20(%3CA%20href%3D%22https%3A%2F%2Fdomain.com%2FRDWeb%2Fwebclient%2Fjs%2Frdcore.eb28ca45.js%3A134%3A114867)%2Cat%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fdomain.com%2FRDWeb%2Fwebclient%2Fjs%2Frdcore.eb28ca45.js%3A134%3A114867)%2Cat%3C%2FA%3E%20dynCall_viii_472%20(eval%20at%20makeDynCaller%20(%3CA%20href%3D%22https%3A%2F%2Fdomain.com%2FRDWeb%2Fwebclient%2Fjs%2Frdcore.eb28ca45.js%3A86%3A1497203%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fdomain.com%2FRDWeb%2Fwebclient%2Fjs%2Frdcore.eb28ca45.js%3A86%3A1497203%3C%2FA%3E)%2C%20%3CANONYMOUS%3E%3A4%3A12)%2Cat%20OnMessageCallback%24Invoke%20%5Bas%20Invoke%5D%20(eval%20at%20new_%20(%3CA%20href%3D%22https%3A%2F%2Fdomain.com%2FRDWeb%2Fwebclient%2Fjs%2Frdcore.eb28ca45.js%3A86%3A1501056%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fdomain.com%2FRDWeb%2Fwebclient%2Fjs%2Frdcore.eb28ca45.js%3A86%3A1501056%3C%2FA%3E)%2C%20%3CANONYMOUS%3E%3A9%3A1)%2Cat%20Worker.%3CANONYMOUS%3E%20(%3CA%20href%3D%22https%3A%2F%2Fdomain.com%2FRDWeb%2Fwebclient%2Fjs%2Frdcore.eb28ca45.js%3A86%3A106254%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fdomain.com%2FRDWeb%2Fwebclient%2Fjs%2Frdcore.eb28ca45.js%3A86%3A106254%3C%2FA%3E)%3CBR%20%2F%3E2020-12-20T15%3A06%3A53.340Z%20WebSocketTransport(NORM)%3A%20WebSocket%20closed%2C%20url%3Dwss%3A%2F%2Fdomain.com%3A443%2FremoteDesktopGateway%3FCorId%3D%257Bac79013d-72f2-4a53-bfc0-6b6bf31e0000%257D%26amp%3BConId%3D%257B539f728e-ab48-4fe8-91fd-32cd49afa8a1%257D%26amp%3BClGen%3DHTML%253D1%26amp%3BClBld%3DType%253DRdClient%253B%2520Build%253Dprivate%26amp%3BAuthS%3DSSPI_NTLM%2C%20wasClean%3Dfalse%2C%20code%3D1006%2C%20reason%3D%22%22%3CBR%20%2F%3E2020-12-20T15%3A06%3A53.516Z%20Connection(ERR)%3A%20The%20connection%20generated%20an%20internal%20exception%20with%20disconnect%20code%3DConnectionBroken(8)%2C%20extended%20code%3D%3CNULL%3E%2C%20reason%3DWebSocket%20closed%20with%20code%3A%201006%20reason%3A%3CBR%20%2F%3EThrown%20in%20thread%20399652%20at%3A%3CBR%20%2F%3Ewebsockettransport.cpp(335)%3CBR%20%2F%3ECall%20Stack%3A%3CBR%20%2F%3Eat%20imb%3CBR%20%2F%3Eat%20fmb%3CBR%20%2F%3Eat%20Tp%3CBR%20%2F%3Eat%20Djd%3C%2FNULL%3E%3C%2FANONYMOUS%3E%3C%2FANONYMOUS%3E%3C%2FANONYMOUS%3E%3C%2FANONYMOUS%3E%3C%2FANONYMOUS%3E%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-LABS%20id%3D%22lingo-labs-2006271%22%20slang%3D%22en-US%22%3E%3CLINGO-LABEL%3EAzure%20Application%20Proxy%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3ERemote%20Desktop%20Services%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3EWindows%20Server%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E
Occasional Contributor

Hi all,

 

I have a small Server 2019 RDS environment running on-prem consisting of three servers.

1 x RDS Gateway/Web Access/Broker

2 x RDS Session Hosts

 

I am using Azure Application Proxy to enable remote working. I have installed the new webclient (/rdweb/webclient/) and if I connect via the App proxy, the setup works perfectly for accessign remote apps and full desktop while making use of the RDP file option, however if I switch to the HTML5 browser option, connections fail and I receive a websocket error (pasted below)

 

Both RDP and HTML5 browser options work perfectly if I access /rdweb/webclient from an on-prem machine. Does anyone have any advice with regards RDS webclient via App Proxy?

 

PD

 

websockettransport.cpp(304): OnErrorFromJS()
at Object.Logger.a.errorWithoutTimestamp (https://domain.com/RDWeb/webclient/js/client.93f1e024.js:1:2848),at Function.<anonymous> (https://domain.com/RDWeb/webclient/js/client.93f1e024.js:5:15934),at methodCaller_emscripten$$val_$emscripten$$val_emscripten$$val$ (eval at new_ (https://domain.com/RDWeb/webclient/js/rdcore.eb28ca45.js:86:1501056), <anonymous>:6:26),at __emval_call_method (https://domain.com/RDWeb/webclient/js/rdcore.eb28ca45.js:86:1522590),at S$a (https://domain.com/RDWeb/webclient/js/rdcore.eb28ca45.js:126:82431),at Djd (https://domain.com/RDWeb/webclient/js/rdcore.eb28ca45.js:134:115033),at invoke_viiiii (https://domain.com/RDWeb/webclient/js/rdcore.eb28ca45.js:86:1574347),at R$a (https://domain.com/RDWeb/webclient/js/rdcore.eb28ca45.js:126:80844),at Bjd (https://domain.com/RDWeb/webclient/js/rdcore.eb28ca45.js:134:114867),at invoke_viii (https://domain.com/RDWeb/webclient/js/rdcore.eb28ca45.js:86:1573937),at H0a (https://domain.com/RDWeb/webclient/js/rdcore.eb28ca45.js:126:120009),at Rfb (https://domain.com/RDWeb/webclient/js/rdcore.eb28ca45.js:116:167461),at zjd (https://domain.com/RDWeb/webclient/js/rdcore.eb28ca45.js:134:114736),at invoke_vii (https://domain.com/RDWeb/webclient/js/rdcore.eb28ca45.js:86:1573548),at C1a (https://domain.com/RDWeb/webclient/js/rdcore.eb28ca45.js:126:157205),at zjd (https://domain.com/RDWeb/webclient/js/rdcore.eb28ca45.js:134:114736),at invoke_vii (https://domain.com/RDWeb/webclient/js/rdcore.eb28ca45.js:86:1573548),at D1a (https://domain.com/RDWeb/webclient/js/rdcore.eb28ca45.js:126:158017),at Bjd (https://domain.com/RDWeb/webclient/js/rdcore.eb28ca45.js:134:114867),at dynCall_viii_472 (eval at makeDynCaller (https://domain.com/RDWeb/webclient/js/rdcore.eb28ca45.js:86:1497203), <anonymous>:4:12),at OnMessageCallback$Invoke [as Invoke] (eval at new_ (https://domain.com/RDWeb/webclient/js/rdcore.eb28ca45.js:86:1501056), <anonymous>:9:1),at Worker.<anonymous> (https://domain.com/RDWeb/webclient/js/rdcore.eb28ca45.js:86:106254)
2020-12-20T15:06:53.340Z WebSocketTransport(NORM): WebSocket closed, url=wss://domain.com:443/remoteDesktopGateway?CorId=%7Bac79013d-72f2-4a53-bfc0-6b6bf31e0000%7D&ConId=%7B539f728e-ab48-4fe8-91fd-32cd49afa8a1%7D&ClGen=HTML%3D1&ClBld=Type%3DRdClient%3B%20Build%3Dprivate&AuthS=SSPI_NTLM, wasClean=false, code=1006, reason=""
2020-12-20T15:06:53.516Z Connection(ERR): The connection generated an internal exception with disconnect code=ConnectionBroken(8), extended code=<null>, reason=WebSocket closed with code: 1006 reason:
Thrown in thread 399652 at:
websockettransport.cpp(335)
Call Stack:
at imb
at fmb
at Tp
at Djd

 

 

0 Replies