我知道已经有一个类似的问题here。但是,唯一的答案并不能解决我的问题。
这是我的代码:
TcpListener TcpListener = new TcpListener(localaddr: IPAddress.Any, port: 8080);
TcpListener.Start();
执行TcpListener.Start();
给了我这个错误:
System.Net.Sockets.SocketException:'试图访问一个 套接字以其访问权限所禁止的方式”
我已经在防火墙内定义了入站安全规则,以使Port 8080可以公开访问(我知道通常不建议这样做,但是出于测试目的,我暂时这样做):
运行netstat -o
时,我可以验证端口8080 没有已经建立了连接。
对于它的价值,我正在Azure虚拟机上启动TcpListener。
关于如何修复SocketException
的任何建议?
更新:
运行netstat -o -n -a | findstr 0.0.0.0:8080
时,看到以下结果:
TCP 0.0.0.0:8080 0.0.0.0:0侦听4
是否因为端口8080上已经有TcpListener
监听而引发了SocketException?
我尝试通过运行TcpListener
终止现有的taskkill/pid 4 /F
(以查看终止后SocketException
是否还会被抛出),但没有成功:
错误:PID为4的进程无法终止。原因:访问 被拒绝。
答案 0 :(得分:0)
在尝试执行taskkill之前,PID 4真的没有设置警报铃声吗? 异常低。在我研究过的大多数Windows系统中,是 OS都是系统的“进程”。
很可能已经有人注册使用该端口作为URL reserved via HTTP.SYS的一部分。
如果您正在运行IIS,请查找在该端口上运行的站点。