簡體   English   中英

在Windows的80端口上運行node.js webbapp

[英]run node.js webbapp on 80 port on windows

我需要使本地node.js webapp監聽80端口。 現在,如果在端口80上運行我的應用程序,則會出現此錯誤

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) 

如果在4321端口上運行應用程序,則不會重現此錯誤,因此取決於端口。

我應該怎么做才能在Windows 7的80端口上運行我的應用程序

在Windows計算機上,您的80端口可能正忙於IIS服務器。 嘗試先停止iis,然后在使用端口80運行node.js webapp之后停止。

IIS在80端口上絕對是問題。 而且,您可以嘗試IIS節點來代替關閉它。 http://www.hanselman.com/blog/InstallingAndRunningNodejsApplicationsWithinIISOnWindowsAreYouMad.aspx也許您根本不需要在本地開發中使用端口80,但是如果您在Windows計算機上投入生產,則IIS Node是進行負載平衡的好選擇。

嘆氣-我剛剛發現SKYPE.EXE潛伏在我的端口80和443上。使用netstat -anb查看是什么阻止了node.exe接受那些端口上的套接字...

像@jimme一樣,我的問題是因為我安裝了Skype客戶端,以便在同一台開發計算機上測試另一個項目。

就我而言,我可以}).listen(80); 但不是}).listen(80, "0.0.0.0"); 除本地主機外,我的服務器無法訪問。 當我通過netstat -abn進行調查時,我看到該端口上正在監聽某些內容,但是沒有進程信息。 我很幸運地看到這樣的信息:“ Windows嘗試通過在主動請求該端口之前將其分發機制綁定到端口80來綁定這種靈活的服務。(這就是為什么您最初不一定會看到問題,但是會遇到此問題的原因。進行某種更新或配置更改后)。”, 網址https://serverfault.com/questions/65717/port-80-is-being-used-by-system-pid-4-what-is-轉到文章https://www.mikeplate.com/2011/11/06/stop-http-sys-from-listening-on-port-80-in-windows/

當我看到重要信息和@jimme的答案時,我想起我也安裝了Skype。 我只是讓skype在啟動時不啟動,所以我很好。

我的Windows 10 PC上也有此問題。

我在以管理員身份打開的命令提示符中關注了此鏈接( net stop http )上的命令: https ://stackoverflow.com/a/16243333,並獲得了以下輸出:

C:\Users\<user>\Documents\project>net stop http 

The following services are dependent on the HTTP Service service. Stopping the HTTP Service service will also stop these services.

 World Wide Web Publishing Service    
 SSDP Discovery    
 Print Spooler    
 Function Discovery Provider Host

Do you want to continue this operation? (Y/N) [N]: y 

The World Wide Web Publishing Service service is stopping. 
The World Wide Web Publishing Service service was stopped successfully.

The SSDP Discovery service is stopping. 
The SSDP Discovery service was stopped successfully.

The Print Spooler service is stopping. 
The Print Spooler service was stopped successfully.

The Function Discovery Provider Host service is stopping. 
The Function Discovery Provider Host service was stopped successfully.

The HTTP Service service was stopped successfully.

C:\Users\<user>\Documents\project>

然后,我在另一個命令提示符處(不是我以管理員身份運行)再次使npm start ,並收到此錯誤對話框

在此處輸入圖片說明

我單擊確定將其關閉,然后在瀏覽器中鍵入localhost並啟動了我的應用程序!

奇怪的是,我回到TaskManager-> Services選項卡 ,然后重新啟動了所有已停止的四個服務。 在下面的屏幕快照中,您可以看到以前已停止的一項服務(請查看“描述”列),但現在已重新啟動:

在此處輸入圖片說明

但是現在當我運行npm start我的節點應用程序仍然可以啟動。

因此,對我來說似乎有點奇怪,在我停止這些服務之前,我無法啟動我的應用程序。 停止它們后,我現在可以啟動我的應用程序。 但是即使重新啟動這些服務,我仍然可以啟動我的應用程序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM