web-dev-qa-db-ger.com

starte node.js webbapp auf 80 port unter windows

Ich muss dafür sorgen, dass meine lokale node.js-Webapplikation 80 Port abhört. Wenn ich meine App auf Port 80 starte, bekomme ich diese Fehlermeldung

events.js:72
        throw er; // Unhandled 'error' event
          ^
Error: listen EACCES
    at errnoException (net.js:901:11)
    at Server._listen2 (net.js:1020:19)
    at listen (net.js:1061:10)
    at Server.listen (net.js:1127:5)
    at Object.<anonymous> (\scripts\server.js:23:4)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Function.Module.runMain (module.js:497:10) 

Und wenn App auf Port 4321 ausgeführt wird, wird dieser Fehler nicht reproduziert, sodass er portabhängig ist.

Was muss ich tun, um meine App unter Windows 7 auf Port 80 ausführen zu können?

15
silent_coder

Auf Windows-Rechnern ist der 80-Port wahrscheinlich mit dem IIS Server belegt. Versuchen Sie, iis zuerst zu stoppen und danach node.js Webapp mit Port 80 auszuführen.

16
Ph0en1x

IIS auf 80 Port ist definitiv ein Problem. Und anstatt es umzudrehen, können Sie den Knoten IIS versuchen. http://www.hanselman.com/blog/InstallingAndRunningNodejsApplicationsWithinIISOnWindowsAreYouMad.aspx Wahrscheinlich benötigen Sie Port 80 in der lokalen Entwicklung überhaupt nicht, aber wenn Sie auf einem Windows-Computer in Produktion gehen, IIS Node ist eine gute Wahl, um das Gleichgewicht zu halten.

4
Serhii Kuts

Seufz - ich habe gerade herausgefunden, dass SKYPE.EXE auf meinen Ports 80 und 443 lauert. Verwenden Sie netstat -anb, um zu sehen, was möglicherweise node.exe daran hindert, Sockets auf diesen Ports zu akzeptieren ...

1
Jimme

Wie bei @jimme bestand mein Problem darin, dass ich den Skype-Client zum Testen eines anderen Projekts auf demselben Entwicklungscomputer installiert habe.

In meinem Fall konnte ich }).listen(80);, aber nicht }).listen(80, "0.0.0.0");. Mein Server war für nichts anderes als localhost erreichbar. Als ich nachforschte, indem ich netstat -abn machte, konnte ich sehen, dass etwas auf diesem Port lauschte, aber es gab keine Prozessinformationen. Ich hatte Glück mit der Information, dass "Windows versucht, solch unflexiblen Diensten entgegenzukommen, indem es seinen Versandmechanismus erst dann an Port 80 bindet, wenn etwas aktiv danach fragt" nach irgendeiner Art von Aktualisierung oder Konfigurationsänderung.), "unter https://serverfault.com/questions/65717/port-80-is-being-used-by-system-pid-4-what-is-that der auf den Artikel https://www.mikeplate.com/2011/11/06/stop-http-sys-from-listening-on-port-80-in-windows/ verwies.

Als ich diese wichtige Information und @jimmes Antwort sah, fiel mir ein, dass ich auch Skype installiert hatte. Ich habe gerade dafür gesorgt, dass Skype beim Start nicht startet und ich war gut.

0
Rich Hildred