For reasons I won’t go into here, I am trying to get a Xojo stand alone Web App to listen on port 80. This is on Windows 2008 Server. When I try to start up Xojo the command window opens up then immediately closes. We have turned off IIS and I do not think any other app on this box is running a web server.
I have read some of the documentaionn regarding using port 80. I see that Mac OS and Linux have issues with assigneing port 80 which require Admin privileges. No mention of windows OS. I have tried starting the web app with Admin priviledges, but the same thing happens,
Is it possible to have a Xojo Web App listening on port 80. The goal here is to have any incoming request go by default to port 80. Trying to get port forwarding working on the temporary router we are trying to use has for some reason has been a lesson in futility. So using port 80 seems to me to be a viable solution.
firewall maybe that stops the app from being able to listen on port 80 ?
system restrictions are really the only reason it isnt work (even on macOS and Linux)
A Xojo web application is based on the service template. I would suggest creating a service to run your web app and use IIS routing & redirect to forward requests from port 80 to whatever you choose.
Click Start
Type cmd in the search bar
When the search results show up youll see Command Prompt
Right-click the Command Prompt and select Run as Administrator
Run the command as before
Running as a user that has administrator privileges isnt the same as launching the app using the Run as Administrator option which elevates the app permissions itself. Try that.
Either way, this is the only way i know. If you still arent able to see the process owner youll need to download a utility that can identify it.
OK, I opened cmd.exe as admin. I get the same thing. Nearly all of the of the active connections display the exe names. A few including the one listening on port 80 sayts “Can not obtain ownership information” instead of the .exe name…
I tried -a -b and found the the line that says TCP [::]:80 and where the exe should it says the same thing… “Can not obtain ownership information”
I tried the Telnet suggestion. I get
[quote]HTTP/1.1 400 Bad Request
Content:-Type: text/html: charset=us-ascii
Date: Sun, 13 Oct 2019 08:45:08 GMT
Server: Microsoft-HTTPAPI/2.0
Connection: close
Content-Length: 326
[/quote]
Followed by the head html which is returning Request - Invalid Verb
If you see a vastly different number at the end (where I see 4) then type that number into the following (where xyz is shown)
tasklist | findstr "xyz"
This will find the program that has the PID which owns the open port 80 from above. Find that on your system, shut it down and find out how to stop it automatically running next reboot.
Now, if its IIS, you can shut it down (until net reboot) by typing
net stop w3svc
Now try the first line from above and see if it shows nothing. Your app should now be able to bind to port 80.
If you want to stop IIS from starting after you reboot, open Services (services.msc), find World Wide Web Publishing Service in the list, right click it and select properties, then change the startup type drop down from Automatic to Manual.
IIS (World Wide Web Publishing Service)
SQL Reporting Services
Web Deployment Agent Services
In any case, as Julian said, you need to stop and disable the offending service. To do that, go to the services control panel (run services.msc from a command prompt or the search bar) and look for one of those listed above. If you find something that looks suspicious, right-click on it and select stop and then run “netstat -ban” again and see if port 80 is still bound. If not, go back to services.msc and double-click the service that you stopped to edit it and change the startup mode to “Disabled”. If that wasn’t the one just right-click and restart it.