“system.net.sockets.socketexception(0x80004005):试图以访问权限禁止的方式访问套接字。”
好吧,我知道这个问题以前在S.O.上发生过很多次,但是我找不到解决办法。我的问题是:可能的原因是什么?
要点:
-
不考虑防火墙而发生
-
端口已打开
-
目标已打开,连接过去一直在工作
-
由于连接正常,对防火墙或病毒扫描程序的任何更改都不能排除这些问题。
-
作为管理用户运行
-
源端口为23876
-
目标端口是变量,取决于从另一个源检测到的客户端
-
Windows 8.1版
还有一点-这个错误也发生在移植到.NET核心之后。
唯一的变化是我试图共享端口,但看不到端口和错误之间的连接。要连接的代码是
client = new TcpClient();
client.Client.SetSocketOption(
SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);
client.Client.SetSocketOption(SocketOptionLevel.IPv6, SocketOptionName.IPv6Only, 0);
client.Client.Bind(ipLocalEndPoint);
client.Client.Connect(ep);
本地端点被重用的位置。
这个错误的可能原因是什么?每次绑定调用都会发生这种情况。