C# 无法打开127.0.0.1适配器上的端口2000-如何查找原因?
我已经好几个月没有运行我们开发的.NET应用程序了,上次它运行得很好。与此同时,我已经将我的电脑升级到Windows10Pro 1809(以及在家里) 今天我试着运行它,但它运行不正常。我对它进行了调试,并在代码尝试在可配置端口上启动TCP服务器(默认为C# 无法打开127.0.0.1适配器上的端口2000-如何查找原因?,c#,windows,powershell,tcp,tcplistener,C#,Windows,Powershell,Tcp,Tcplistener,我已经好几个月没有运行我们开发的.NET应用程序了,上次它运行得很好。与此同时,我已经将我的电脑升级到Windows10Pro 1809(以及在家里) 今天我试着运行它,但它运行不正常。我对它进行了调试,并在代码尝试在可配置端口上启动TCP服务器(默认为2000)后将其缩小为异常 例外情况如下: System.Net.Sockets.SocketException(0x80004005):试图以访问权限所禁止的方式访问套接字 执行此代码时会引发该错误: listener = ne
2000
)后将其缩小为异常
例外情况如下:
System.Net.Sockets.SocketException(0x80004005):试图以访问权限所禁止的方式访问套接字
执行此代码时会引发该错误:
listener = new TcpListener("127.0.0.1", 2000);
listener.Start();
我执行了正常的诊断步骤,但无效:
- 那个端口上已经有人监听了吗
- 禁用防火墙
- 重新启用防火墙,然后删除有关应用程序和端口的规则
- 启用防火墙日志记录以查看是否有任何证据表明它拒绝
$port = 2000
$listener = new-object System.Net.Sockets.TcpListener ("127.0.0.1", $port)
try
{
$listener.start()
Write-Output "Successfully opened port $port"
}
catch
{
Write-Error $_
}
finally
{
$listener.Stop()
}
我得到了几乎相同的例外:
使用“0”参数调用“Start”时发生异常:“试图访问
其访问权限禁止的方式“
接下来,我决定将端口更改为3000
,它可以正常工作
接下来,我调整脚本以在端口之间从1
到2500
循环,并得到一系列故障,包括从1657
到2156
和2179
到2279
的范围
下一步要去哪里找到根本原因?Windows可以使用什么机制拒绝绑定(?)尝试
更新
尝试了这个C#应用程序,我得到了相同的结果:
namespace TcpBindTest
{
using System.Net;
using System.Net.Sockets;
class Program
{
static void Main(string[] args)
{
Socket listener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPEndPoint endpoint = new IPEndPoint(new IPAddress(new byte[]{127, 0, 0, 1}), 2000);
listener.Bind(endpoint);
listener.Listen(1);
}
}
}
您是否尝试过
netstat-ano
查看正在侦听的内容,或者尝试以管理员身份运行您的代码?防病毒软件还可以阻止特定的端口范围。@Zer0是的,我尝试过netstat
。我的同事和我在同一个网络环境下,所有这些都在他的计算机上运行(相同的防病毒软件、域中相同的组策略等)…一位同事遇到了相同的问题。他遇到了一篇MSDN帖子(我没有链接),要求尝试停止“互联网连接共享”服务,这似乎奏效了。如果我能找到更多关于它的信息,我会发布更多的信息。您是否尝试过netstat-ano
查看正在侦听的内容,或者尝试过以管理员身份运行您的代码?防病毒软件还可以阻止特定的端口范围。@Zer0是的,我尝试过netstat
。我的同事和我在同一个网络环境下,所有这些都在他的计算机上运行(相同的防病毒软件、域中相同的组策略等)…一位同事遇到了相同的问题。他遇到了一篇MSDN帖子(我没有链接),要求尝试停止“互联网连接共享”服务,这似乎奏效了。如果我能找到更多关于它的信息,我会发布更多的信息。