FreeRDP / FreeRDP-WebConnect

A gateway for seamless access to your RDP-Sessions in any HTML5-compliant browser
515 stars 1.6k forks source link

FreeRDP connection in browser get stuck after a while #127

Open SSinternalIT opened 8 years ago

SSinternalIT commented 8 years ago

We are using FreeRDP WebConnect 1.2.0.376 with Firefox 43.0.1 (but osserved the problem on Chrome and IE) and after 15 minutes we are using FreeRDP Web Connect installed on windows 2012 it get stuck. We have installe the FreeRDP WebConnect on windows 2012 R2 downloading it from here:

https://cloudbase.it/freerdp-html5-proxy-windows/

We see the clock on the windows tray changing but we cannot click or write in any input field. If we try to restart the FreeRDP web connect via the service snap-in it also get stuck on "stopping" and the only way to make it work again is to reastart windows.

Is there a new version of RDP WebConnect that we can download that hopefully fixes this issue?

SSinternalIT commented 8 years ago

Hello!

I just realized I was using a customized version of the original project. I downloaded a new version from http://frerdp.net : FreeRDP-WebConnect-1.0.0.167-Setup.exe I'll keep you posted on the outcome.

alexpilotti commented 8 years ago

That is a very old and unsupported version. We currently provide Windows binaries here: https://www.cloudbase.it/downloads/FreeRDPWebConnect.msi

alexpilotti commented 8 years ago

@SSinternalIT what client OS are you using?

SSinternalIT commented 8 years ago

Hello!

Thank you very much for your feedback!

I tried installing the last version I found and the problem I reported did not show up again. After some hour of work though the connection broke and was not possible to get connected with wsgate (no web page was shown). I was using Google Chrome 48. Inspecting the server I found out that the FreeRDP-Webconnect service was stopped. Starting it again fixed the problem. I then scheduled a script that attempt to start the service every few minutes to avoid further problem. Is that a know issue on windows 2012 R2? Also inside the RDP canvas in the web browser some keyboard key combination seems not to work like ctrl-c and ctrl-x to cut&paste and alt-a to select all text and canc to delete a character (while backspace works).

SSinternalIT commented 8 years ago

Just a question... what's the difference between the coudbase version and the one from freeRdp.net project? I'm getting a little bit confused...

Just tried the MSI from CloudBase and it seems to fix the issues with the keys... I'll check if any problem with the service and stability shows up and keep you posted...

SSinternalIT commented 8 years ago

Hello! An update. With the cloudbase msi we experienced again the web session getting stuck. It looks like it happens only on Amazon AWS EC2 instance with Windows 2012R2 installed. I tried a notepad.exe and a cmd.exe with a ping in a VM on my computer and it worked for hours (the VM was also windows 2012R2). When it gets stuck it usually is related to a resize of a very busy window (many little updates all over the surface) of an application. After that the wsgate seems unable to manage requests from the browser (same behaviour with Firefox 43 and Chrome 48). Also when wsgate is stuck there's no way to stop the service, stays endlessly in "stopping" state and the only way to unblock it is to manually kill the process (wsgate).

Would it be possible to activete some form of logging to see what happens to the wsgate?

c64cosmin commented 8 years ago

@SSinternalIT If you want debugging information, you need to edit the wsgate.ini file, and change

[global]
debug=true

The debug messages can be seen using Event viewer -> Windows logs -> Applications

If your service doesn't restart, try using a elevated PowerShell and use the Stop-Service or Restart-Service command

SSinternalIT commented 8 years ago

Hello! I see a new commit was made to the repo to fix the service never stopping issue. Is there a msi with this fix availlable? Also, where could I find the linux version of wsgate (I tried to install from this repo but I still get avery old version: http://download.opensuse.org/repositories/home:/felfert/CentOS_CentOS-6/home:felfert.repo)

c64cosmin commented 8 years ago

https://cloudbase.it/downloads/FreeRDPWebConnect_Beta.msi That would be the link that fixes the issue, we are still doing some tests with it. Should be stable though. For Linux use the following: sudo ./install_prereqs.sh sudo ./setup-all.sh -f That will install the required dependencies, respectively will build wsgate.

SSinternalIT commented 8 years ago

Thanks! I'll do some testing with the new version and let you know.

SSinternalIT commented 8 years ago

Hello I had time to do more testing and also installed the latest stable release (downloaded today) v. 1.2.0.412. Some issues disappeared but I still am experiencing that the wsgate service sometimes just stop responding. When I get that in the events I get this message:

The description for Event ID 256 from source wsgate cannot be found. Either the component that raises this event is not installed on your local computer or the installation is corrupted. You can install or repair the component on the local computer. If the event originated on another computer, the display information had to be saved with the event. The following information was included with the event:

Update.cpp:100

So far that happened when tried to connect and another user was using the RDP so I was presented with a window asking to disconnect one of the already used sessions (but nothing happened when I clicked the options and then I found out the wsgate process was stuck and irresponsive to service restart). Another time it happened when I used the windows 2012 logon option instead of the "disconnect" button of the html client. In that case on the html client screen I could see a "server error 0x0c" or something like that (and afterwards I could not log in again so found out the wsgate process was stuck).

c64cosmin commented 8 years ago

The error related to the process being stuck is well known of and it's worked upon, a new version will come up soon.

tomcsanyid commented 8 years ago

We have exactly the same issue, so we are waiting for the updated version. A simple test involving simply curl-ing the login page makes the process stuck after 5th-6th iteration:

#!/bin/bash
for i in {1..100}
do
  echo $i
  curl freeRDP_server:8000
  sleep 2
done
SSinternalIT commented 8 years ago

Hello!

Any news on the new release that is meant to fix this issue?

tomcsanyid commented 8 years ago

@SSinternalIT there is a fresh installer available:

https://cloudbase.it/downloads/FreeRDPWebConnect_Beta.msi

it works well for me, but before installing you need to install Visual C++ Redistributable 2013 64 bit - https://www.microsoft.com/en-us/download/details.aspx?id=40784

SSinternalIT commented 8 years ago

Thank you very much. I'll give it a try and let you know the outcome.

zsolteey commented 8 years ago

Hi,

I have the same issue. I want to connect to my Windows 10 PC remotely. I installed the software (the beta) on it and I connected successfully. But if I open a browser with some "complex" webpage (lot of content, for example Facebook) and scrolling a little bit, the connection is stuck and I have to kill the service from Task Manager. I can reproduce this issue.

Server (where FreeRDP is installed): Windows 10 OS. Browser: Chrome. Client: Windows 10 OS, Browser: IE 11.

The last Event Viewer entry is before the connection stuck:

The description for Event ID 256 from source wsgate cannot be found. Either the component that raises this event is not installed on your local computer or the installation is corrupted. You can install or repair the component on the local computer.

If the event originated on another computer, the display information had to be saved with the event.

The following information was included with the event:

Request from : /cur/0000016C0A244FD0/8 => 304 Not modified

Thanks! Sincerely, Zsolti.

c64cosmin commented 8 years ago

@zsolteey That last Event is not useful, it's just an info event. Can you try to reproduce the problem and search for any errors and paste them in something like pastebin.com. Also tell me the steps that you follow to reproduce the problem.

zsolteey commented 8 years ago

Never mind. It cannot get through our proxy: "Could not connect to websocket gateway" when I click Connect :(

simonp22 commented 7 years ago

Still getting this issue on 1.2.0.427

Any ideas?

thesraid commented 6 years ago

I have the same issue. Running v1.2.0.442 on Windows 2016 on AWS. If I open a busy window it freezes. I am unable to reconnect. The service appears to be running but when I try and restart it I get the error 1053.

These are the logs that appear after it freezes

257 >> tcode: 17
Kup: c=17
257 >> tcode: 13
Kup: c=13
257 >> tcode: 13
Kdown: c=13
257 >> tcode: 17
Kdown: c=17
257 >> tcode: 69
Kup: c=69
257 >> tcode: 66
Kup: c=66
257 >> tcode: 69
Kdown: c=69
257 >> tcode: 66
Kdown: c=66
257 >> tcode: 85
Kup: c=85
257 >> tcode: 85
Kdown: c=85
257 >> tcode: 84
Kup: c=84
257 >> tcode: 84
Kdown: c=84
257 >> tcode: 85
Kup: c=85
257 >> tcode: 85
Kdown: c=85
257 >> tcode: 79
Kup: c=79
257 >> tcode: 79
Kdown: c=79
257 >> tcode: 89
Kup: c=89
257 >> tcode: 89
Kdown: c=89
JS: mU b:  4096  x:  537  y:  52
JS: mD b:  4096  x:  537  y:  52 
JS: mU b:  4096  x:  1073  y:  17 
JS: mD b:  4096  x:  1073  y:  17
Request FROM: 93.107.30.164 replied with 200 OK
evasil commented 4 years ago

We also have the same issue with running on Ubuntu 16.04. Compiled with no issues. Running wsgate as daemon.

  1. Initially wsgate was running by itself, with no proxies. We have found that testing with "curl" cannot get FreeRDP to be stuck. However using browsers easily lead to the discussed issue: wsgate is running and daemon itself is responding to commands start, stop, restart, kill. However HTTP/S server inside looks hung and not responding to requests, but not refusing though.

  2. We have disabled HTTPS on wsgate (it uses EHS server as http/s server) and recompiled. Put wsgate behind Nginx proxy. We have realised that in this setup if we disable ALL headers to be passed by Nginx to wsgate the issue seemed to disappear. At least wsgate HTTP server didn't hang after 1-2 attempts to connect. Then we allowed certain headers like: Host, Accept and couple of others and decided the problem fixed.

  3. However we have found that wsgate (or EHS behind it) still hangs, but after a longer time (1-6 hours).

At this stage we are running wsgate simple monitoring script which restarts the service if there is 200 response on simple HTTP request.

Nevertheless the issue exists and we do not know how to fix it as eve debug log is silent when hanging occurs.