C# 无法打开127.0.0.1适配器上的端口2000-如何查找原因?

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

我已经好几个月没有运行我们开发的.NET应用程序了,上次它运行得很好。与此同时,我已经将我的电脑升级到Windows10Pro 1809(以及在家里)

今天我试着运行它,但它运行不正常。我对它进行了调试,并在代码尝试在可配置端口上启动TCP服务器(默认为
2000
)后将其缩小为异常

例外情况如下:

System.Net.Sockets.SocketException(0x80004005):试图以访问权限所禁止的方式访问套接字

执行此代码时会引发该错误:

        listener = new TcpListener("127.0.0.1", 2000);
        listener.Start();
我执行了正常的诊断步骤,但无效:

  • 那个端口上已经有人监听了吗
  • 禁用防火墙
  • 重新启用防火墙,然后删除有关应用程序和端口的规则
  • 启用防火墙日志记录以查看是否有任何证据表明它拒绝
因此,我在PowerShell脚本中快速测试了相同的功能:

$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帖子(我没有链接),要求尝试停止“互联网连接共享”服务,这似乎奏效了。如果我能找到更多关于它的信息,我会发布更多的信息。