.Net Core启动程序报错:以一种访问权限不允许的方式做了一个访问套接字的尝试

2024-01-26

问题

启动.net core程序报错:System .Net .Sockets .SocketException 10013 以一种访问权限不允许的方式做了一个访问套接字的尝试

image-20240126165131306

一般是端口被占用或者指定端口在排除范围之内,对症下药,我们需要换个端口处理端口占用问题或者把端口从排除范围中删除即可

一招制敌:重启计算机(不太建议),因为重启计算机后,端口排除排除范围会初始化,端口也可能没有被占用

如何解决

处理端口占用

首先我们在cmd输入以下命令,查看端口(54000)是否被占用

image-20240125152919365

如果端口被占用,则可以在任务管理器中的详细信息根据PID查到对应的程序,右键将其结束任务即可

image-20240126165845224

检查端口排除范围

如果端口没有被占用,接下来我们要查看指定端口是否在端口排除范围之内(端口是否被排除),如下图我们发现端口54000被排除了

image-20240126170225798

接下来我们只需要重启winnat,再查询端口是否被排除即可(是的,这里只需要重启winnat即可,不用手动删除排除范围也不用重启计算机)

如果端口还在排除范围的话就多重启winnat几次,或者手动删除排除范围即可

image-20240125154257191

接着重新启动项目,成功运行

image-20240126171220225

添加/删除端口排除范围

至于手动添加/删除端口排除范围,可以参照以下写法。不过我没有测试成功,先记个Todo

image-20240125155325373

如下图,我重启计算机后,端口5600确实在排除范围内,但是没有生效,仍然可以使用端口5600

image-20240125162045361