danxfisher / MeetEasier

MeetEasier is a web application that visualizes meeting room availability. It works using Exchange Web Services (EWS) with Exchange room lists in Office 365.
GNU General Public License v3.0
279 stars 75 forks source link

On-prem exchange #3

Open yscotty opened 6 years ago

yscotty commented 6 years ago

I took the advise of the reddit post and attempted this with our on-prem exchange (both 2013 and 2016 servers) just to see if it works (and for fun). Changing "var exch = new ews.ExchangeService(ews.ExchangeVersion.Exchange2016);" to accommodate either 2013 or 2016 EWS setups did seem to get it to work somewhat. I tried both 2013 and 2016 server EWS uri's. It works "up to a point".

The terminal console of my ubuntu server starts showing all the rooms and roomlists as I refresh the website in a browser. And I can see the room lists show up in the website. But that's all I get. The roomlists aren't clickable. No information is shown. I just get a page with a drop down of all my room lists.

Figured I'd put this here in case someone else was chancing it with on-prem servers or had similar issues.

Auth all seems in order, and I can't see any errors to report. shrug

danxfisher commented 6 years ago

Could you hit F12 in the browser window and post the "Console" section of the browser log? Thanks.

yscotty commented 6 years ago

http://localhost:8080/socket.io/?EIO=3&transport=polling&t=L_6HJMm net::ERR_CONNECTION_REFUSED i.create @ polling-xhr.js:264 i @ polling-xhr.js:165 o.request @ polling-xhr.js:92 o.doPoll @ polling-xhr.js:122 r.poll @ polling.js:118 r.doOpen @ polling.js:63 r.open @ transport.js:80 r.open @ socket.js:245 r @ socket.js:119 r @ socket.js:28 r.open.r.connect @ manager.js:226 r @ manager.js:69 r @ manager.js:37 r @ index.js:60 value @ Socket.js:20 commitLifeCycles @ react-dom.production.min.js:148 t @ react-dom.production.min.js:157 w @ react-dom.production.min.js:168 b @ react-dom.production.min.js:167 h @ react-dom.production.min.js:165 d @ react-dom.production.min.js:164 updateContainer @ react-dom.production.min.js:173 (anonymous) @ react-dom.production.min.js:223 unbatchedUpdates @ react-dom.production.min.js:170 yn @ react-dom.production.min.js:223 render @ react-dom.production.min.js:225 (anonymous) @ index.js:13 t @ bootstrap 21865d8548dbab65f4a1:19 (anonymous) @ main.ab0884f2.js:5176 t @ bootstrap 21865d8548dbab65f4a1:19 (anonymous) @ bootstrap 21865d8548dbab65f4a1:62 (anonymous) @ bootstrap 21865d8548dbab65f4a1:62 polling-xhr.js:264 GET http://localhost:8080/socket.io/?EIO=3&transport=polling&t=L_6HK23 net::ERR_CONNECTION_REFUSED i.create @ polling-xhr.js:264 i @ polling-xhr.js:165 o.request @ polling-xhr.js:92 o.doPoll @ polling-xhr.js:122 r.poll @ polling.js:118 r.doOpen @ polling.js:63 r.open @ transport.js:80 r.open @ socket.js:245 r @ socket.js:119 r @ socket.js:28 r.open.r.connect @ manager.js:226 (anonymous) @ manager.js:540 setTimeout (async) r.reconnect @ manager.js:530 r.maybeReconnectOnOpen @ manager.js:208 (anonymous) @ manager.js:250 r.emit @ index.js:133 r.onError @ socket.js:685 (anonymous) @ socket.js:276 r.emit @ index.js:133 r.onError @ transport.js:67 (anonymous) @ polling-xhr.js:128 r.emit @ index.js:133 i.onError @ polling-xhr.js:310 (anonymous) @ polling-xhr.js:257 setTimeout (async) hasXDR.n.onreadystatechange @ polling-xhr.js:256 XMLHttpRequest.send (async) i.create @ polling-xhr.js:264 i @ polling-xhr.js:165 o.request @ polling-xhr.js:92 o.doPoll @ polling-xhr.js:122 r.poll @ polling.js:118 r.doOpen @ polling.js:63 r.open @ transport.js:80 r.open @ socket.js:245 r @ socket.js:119 r @ socket.js:28 r.open.r.connect @ manager.js:226 r @ manager.js:69 r @ manager.js:37 r @ index.js:60 value @ Socket.js:20 commitLifeCycles @ react-dom.production.min.js:148 t @ react-dom.production.min.js:157 w @ react-dom.production.min.js:168 b @ react-dom.production.min.js:167 h @ react-dom.production.min.js:165 d @ react-dom.production.min.js:164 updateContainer @ react-dom.production.min.js:173 (anonymous) @ react-dom.production.min.js:223 unbatchedUpdates @ react-dom.production.min.js:170 yn @ react-dom.production.min.js:223 render @ react-dom.production.min.js:225 (anonymous) @ index.js:13 t @ bootstrap 21865d8548dbab65f4a1:19 (anonymous) @ main.ab0884f2.js:5176 t @ bootstrap 21865d8548dbab65f4a1:19 (anonymous) @ bootstrap 21865d8548dbab65f4a1:62 (anonymous) @ bootstrap 21865d8548dbab65f4a1:62 polling-xhr.js:264 GET http://localhost:8080/socket.io/?EIO=3&transport=polling&t=L_6HKz8 net::ERR_CONNECTION_REFUSED

danxfisher commented 6 years ago

I will try and look at my old code tomorrow and see if there's anything that can help there. Previously, I had this working with on-prem 2010 SP2. Did you attempt to change the port of the server at all?

clausmoell commented 6 years ago

I have the exact same issue. On-prem Exchange 2013. Website with roomlists is visible, but not clickable. No information is shown. No ports were changed

danxfisher commented 6 years ago

@clausmoell @yscotty A few more things--I apologize for all the unknowns as I didn't have multiple environments to test this:

clausmoell commented 6 years ago

Hi Dan

  1. It's running on Ubuntu server.
  2. No - only one domain.
  3. The meeting rooms have been in use for a long time. No new meeting rooms.

If I try in connect to the ubuntu IP:8080 from a domain computer I get a lot of the above net::ERR_CONNECTION_REFUSED as yscotty also experiences.

I've also tried installing a GUI on the Ubuntu and connecting to localhost:8080 in a browser. This time I don't get the net::ERR_CONNECTION_REFUSED - but I get this output in the Developer Console:

react-dom.production.min.js:163 TypeError: Cannot read property 'map' of null at t.value (Flightboard.js:58) at c (react-dom.production.min.js:129) at beginWork (react-dom.production.min.js:133) at o (react-dom.production.min.js:160) at a (react-dom.production.min.js:160) at s (react-dom.production.min.js:161) at w (react-dom.production.min.js:167) at b (react-dom.production.min.js:167) at h (react-dom.production.min.js:165) at d (react-dom.production.min.js:164) u @ react-dom.production.min.js:163 s @ react-dom.production.min.js:161 w @ react-dom.production.min.js:167 b @ react-dom.production.min.js:167 h @ react-dom.production.min.js:165 d @ react-dom.production.min.js:164 enqueueSetState @ react-dom.production.min.js:107 o.setState @ react.production.min.js:11 (anonymous) @ Flightboard.js:22 Promise resolved (async) value @ Flightboard.js:21 commitLifeCycles @ react-dom.production.min.js:148 t @ react-dom.production.min.js:157 w @ react-dom.production.min.js:168 b @ react-dom.production.min.js:167 h @ react-dom.production.min.js:165 d @ react-dom.production.min.js:164 updateContainer @ react-dom.production.min.js:173 (anonymous) @ react-dom.production.min.js:223 unbatchedUpdates @ react-dom.production.min.js:170 yn @ react-dom.production.min.js:223 render @ react-dom.production.min.js:225 (anonymous) @ index.js:13 t @ bootstrap b1c3a896170f60be9dae:19 (anonymous) @ main.ab0884f2.js:5176 t @ bootstrap b1c3a896170f60be9dae:19 (anonymous) @ bootstrap b1c3a896170f60be9dae:62 (anonymous) @ bootstrap b1c3a896170f60be9dae:62 Flightboard.js:58 Uncaught (in promise) TypeError: Cannot read property 'map' of null at t.value (Flightboard.js:58) at c (react-dom.production.min.js:129) at beginWork (react-dom.production.min.js:133) at o (react-dom.production.min.js:160) at a (react-dom.production.min.js:160) at s (react-dom.production.min.js:161) at w (react-dom.production.min.js:167) at b (react-dom.production.min.js:167) at h (react-dom.production.min.js:165) at d (react-dom.production.min.js:164)

yscotty commented 6 years ago

Yes, sorry. Fresh Ubuntu build. 8080 port. One primary domain.

Gavinr98 commented 6 years ago

Also having the same issue. Single domain also on Ubuntu 16.04. Not using IIS.

greenyi1984 commented 6 years ago

Is it resolved? Recently, I am looking for a solution to better manage our meeting rooms and we're planing the Exchange system.

Sportsgraphics commented 6 years ago

Not sure if its related.. I just tried it and noticed a 401 error. Its trying to use Basic Authentication which has been disabled on the onprem server as it is insecure.. Not sure if this can be changed to use something more robust ?

nvdlsl commented 5 years ago

@danxfisher I'm running Exchange 2013 CU21 and MeetEasier shows a warning: Oops, there seems to be an issue with the credentials you have supplied. Make sure you typed them correctly and that you have access to Exchange Roomlists.

I can logon using the same credentials on OWA and see al the meeting rooms. How can i check what is wrong?

zkenstein commented 4 years ago

Did you resolved for onprem @nvdlsl