首页 > 其他分享 >解决.net core开发过程中端口总是无缘无故被占用的问题,提示SocketException: 以一种访问权限不允许的方式做了一个访问套接字的尝试。修改端口还无效

解决.net core开发过程中端口总是无缘无故被占用的问题,提示SocketException: 以一种访问权限不允许的方式做了一个访问套接字的尝试。修改端口还无效

时间:2023-12-14 16:02:09浏览次数:34  
标签:core SocketException 占用 端口 问题 访问 net start

先给出原因和方案:

    是Hyper-V每次启动随机保留端口段,导致所要使用的端口被系统保留,导致无法使用的问题

 解决方法就是,指定系统保留端口的范围,避开开发时使用的端口即可。powershell 管理员身份使用下面的命令设置。

    netsh int ipv4 set dynamic tcp start=49152 num=16384
    netsh int ipv6 set dynamic tcp start=49152 num=16384 


下边进入故事模式

1、缘起

不知道从哪天开始,启动.net core程序的时候总是报错
  SocketException: 以一种访问权限不允许的方式做了一个访问套接字的尝试。

用人话的意思就是,端口被占用了

好吧,既然被占用了,那换一个就好了。

然后修改项目下的Properties\launchSettings.json文件,把

"applicationUrl": "http://localhost:6000"

修改为

"applicationUrl": "http://localhost:6001"
 再次启动,故障依旧。可能是改少了。多改点,改成
"applicationUrl": "http://localhost:6060"

再次启动,还是报错,what fuc.....,什么鬼。

重启,嗯,估计是系统偶尔抽风。继续工作。。。

 

2、问题不是想象的那么简单

第二天,开始工作。又报错。。。 老重启也不是办法呀。于是把配置文件修改为
"applicationUrl": "http://localhost:8000"
终于又好了。但是为什么? 各种百度、Bing无果。给出的方案都是端口占用了换一个。 神奇的是,用netstat查看占用的端口,居然找不到,显示没有被占用 开始疑神疑鬼,觉得可能是.net core的框架有什么bug了,导致启动的时候启动两次?然后自己跟自己冲突了?不然无法解释了 从此开始,时不时需要改端口范围的痛苦操作。 好在发布的程序在别的机器上运行都没有问题。也就先这样了。 某一天发现,有些软件启动时,也会有端口被占用的问题。看来不一定是.net core的问题。也许那些软件也用的.net core写的呢?  

3、问题大爆发,终于有了解决方案

终于有一天, 6000,7000,9000段端口全部被占用了。 看来是要下决心解决这个问题了。 bing外网,找到类似端口占用的问题。始终未发现说.net core相关的bug,发现有提示用 net stop winnat net start winnat 重启winnat服务的方式可以解决。 马上试了试,真香! 果然好了,写了个批处理,哪天有问题就运行下。 省事多了,最起码不用重启不用改端口了。  

4、知其然,还要知其所以然,真相终于大白

但是,为什么,不弄明白,实在是不甘心。 既然从故障入手找不到方案,那就从解决的办法入手。百度关键词winnat 端口占用 找到了这篇文章:Windows端口莫名占用   https://zhuanlan.zhihu.com/p/661398276 顺藤摸瓜又找到了这篇:解决 Windows 10 端口被 Hyper-V 随机保留(占用)的问题 https://zhaoji.wang/solve-the-problem-of-windows-10-ports-being-randomly-reserved-occupied-by-hyper-v/ 至此终于找到根源,原来是之前开启Hyper-V虚拟机之后,导致的端口被随机保留的问题。所以netstat也找不到是哪个程序占用了端口(没有占用【使用】当然找不到) 按照文章所给出的方案用管理员执行以下命令 netsh int ipv4 set dynamic tcp start=49152 num=16384 netsh int ipv6 set dynamic tcp start=49152 num=16384   至于是否有效,我相信找到这里肯定没问题了。记录下来,又增长了系统的知识  

标签:core,SocketException,占用,端口,问题,访问,net,start
From: https://www.cnblogs.com/Ricklee/p/17901361.html

相关文章

  • 05 基础入门——资产架构&端口&应用&WAF&站库分离&负载均衡
    一、资产架构1、网站配置(1)目录型网站安全bbs.xiaodi8.com  dz论坛      #该域名下有一套网站程序,dz论坛bbs.xiaodi8.com/blog wp程序  #该域名的某个目录下也配置了一套网站程序总结:一个网站,两个程序,其中任何一个程序出现漏洞,都可以进入安全测试(同一服务器......
  • SglServer 设置用户只能访问特定表、特定数据库
    设置用户只能访问特定表、特定数据库一、只能访问特定数据库1.【安全性】—【登录名】右击用户、打开属性,选择用户映射,勾选特定数据库 2.如果服务器角色勾选了【查看任意数据库】,那么登录后会看到所有的数据库,没有授权的数据库会提示无法访问数据库 最终效果 二......
  • Linux 部署企业级夜莺监控分析工具并实现远程访问(运维零距离!!)
    夜莺监控是一款开源云原生观测分析工具,采用All-in-One的设计理念,集数据采集、可视化、监控告警、数据分析于一体,与云原生生态紧密集成,提供开箱即用的企业级监控分析和告警能力。夜莺于2020年3月20日,在github上发布v1版本,已累计迭代100多个版本。本地部署后,为解决......
  • 12月13日80端口被占用问题解决
    在写软件构造作业的时候,发现Jfinal提示java.lang.IllegalStateException:port:80notavailable!原因是因为我们的80端口被占用了,当我们输入localhost的时候出现的是windows iis服务的界面这个时候需要我们关闭windowsiis服务1.点击开始收索服务,在服务界面找到worldWide......
  • Linux 部署1Panel现代化运维管理面板教程并且实现远程访问(运维福音!!)
    1Panel是一个现代化、开源的Linux服务器运维管理面板。高效管理,通过Web端轻松管理Linux服务器,包括主机监控、文件管理、数据库管理、容器管理等下面我们介绍在Linux本地安装1Panel并结合cpolar内网穿透工具实现远程访问1Panel管理界面1.Linux安装1Panel执行如下......
  • 端口与服务对照表
    2端口:管理实用程序3端口:压缩进程5端口:远程作业登录7端口:回显9端口:丢弃11端口:在线用户13端口:时间17端口:每日引用18端口:消息发送协议19端口:字符发生器20端口:FTP文件传输协议(默认数据口)21端口:FTP文件传输协议(控制)22端口:SSH远程登录协议23端口:telnet(终端仿真协议),......
  • nginx配置多个站点共用80端口,不算端口冲突吗?
    在使用Nginx配置多个站点时,可以将它们共享一个端口(例如80端口)。这是因为Nginx使用虚拟主机(VirtualHost)的概念,通过对访问请求进行区分,将请求发送到不同的站点。Nginx的配置文件中,可以通过server块来定义不同的虚拟主机。每个server块中可以指定不同的域名或IP地址,并设置对应的站点......
  • [VMware]ESXI 7.0u3使用端口汇聚提升VMs网络吞吐率
    前言ESXI需要搭配千兆/万兆交换机才能实现高速通讯的效果。ESXI网络组成关键指标图示11.端口组portgroup释义:一组端口的组合2.虚拟交换机virtualswitchs释义:虚拟的2层、3层交换机,基于软件3.物理网卡physicalcards释义:物理网卡1G/10G以太网卡或者光端口网卡4.虚拟管理卡 VMke......
  • 保姆级教程利用免费内网穿透工具快速实现远程访问SMB文件共享
    当你需要在远程网络中访问SMB(ServerMessageBlock)共享资源时,你可以使用Solopace.Gem来建立安全且便捷的连接。Solopace.Gem是一款专为远程访问和网络连接而设计的工具,它能够轻松地穿越NAT(网络地址转换)和防火墙,如果运营商的防火墙让你能够安全地远程访问SMB共享文件夹。本教程将指......
  • 本地搭建Stable Diffusion并利用免费组网工具实现远程访问AI绘图服务
    很多小伙伴在家里或者公司搭建了本地的StableDiffusionWebUI需要异地访问或者共享给其他小伙伴使用服务,如果机器本身搭建在公网服务器上面有域名就可以共享出去,但是涉及到安全问题所以大多数人都是部署在本地服务器或者家里的电脑上面。笔者通过B站秋葉aaaki的教程进行一键安装S......