【茶包射手筆記】清除 Windows TCP Port 保留區段
4 |
遇到老問題,Visual Studio 啟動 IISExpress 跑 ASP.NET Core 時冒出 Failed to register URL "http://localhost:59683/" for site "MyWeb" application "/". Error description: The process cannot access the file because it is being used by another process. (0x80070020)。
,使用 netsh interface ipv4 show excludedportrange protocol=tcp
檢查,59683 確實踩中了 TCP Port 保留區:
但,密密麻麻 32 塊保留區(每段 100 Port)也太誇張了! 這樣子豈不一天到晚會踩到雷?爬文得知似乎是 Hyper-V 搞鬼,與 Windows NAT 服務有關,按照建議重啟 WinNAT 服務,net stop winnat 再 net start winnat,50000 以上的保留區段就只剩下 50000 - 50059。
未來再遇 TCP Port 被大量佔用,這招會比改 Port 方便一些。
Tips of how to clear reserved TCP port ranges in Windows 10.
Comments
# by Harry Tu
想請問這個方法是否會影響Hyper-V的NAT運作?
# by Jeffrey
to Harry Tu, 沒查到確實的副作用說法,我猜最壞狀況是執行中的 VM/Container 網路中斷需要重新啟動。(前題是你恰巧用到被它保留並在使用中的 Port,個人覺得機率頗低)
# by nolem
請問這算hyper-v 或是winnat bug 嗎?port占用成這樣~有點扯ㄟ~
# by Jerry
不知道重新開機之後,這些擋 port 的設定會不會又回來 ??