【发布时间】:2018-09-24 22:11:58
【问题描述】:
“System.Net.Sockets.SocketException (0x80004005): 试图以访问权限禁止的方式访问套接字”
好的,我知道这个问题之前在 S.O. 上发生过很多次,但我找不到解决方案。这是我的问题:这可能是什么原因。
积分:
- 发生与防火墙无关
- 端口已打开
- 目标已打开,并且过去的连接一直正常
- 由于连接正常,无需更改防火墙或病毒扫描程序,就可以排除这些问题。
- 以管理用户身份运行
- 源端口是23876
- 目标端口是可变的,取决于从另一个来源检测到的客户端
- Windows 8.1
还有一点 - 移植到 .NET Core 后也发生此错误。
唯一的变化是我正在尝试共享端口,但我看不到它与错误之间的连接。连接代码是
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);
重用本地端点的地方。
此错误的可能原因是什么?每次 BIND 调用都会发生这种情况。
【问题讨论】:
-
您要打开什么端口号?您的代码在什么访问级别(管理员、标准用户)下执行?什么操作系统?请参阅this answer,至少有一个原因表明信息与添加到您的帖子相关。
-
@KenWhite 谢谢肯,这都是管理员模式。立即添加信息。