错误"尝试以其访问权限禁止的方式访问套接字"

时间:2017-10-06 13:05:15

标签: c# .net sockets wcf

运行WCF服务以在本地计算机上进行测试。在App.config中我有:

<system.serviceModel>
    <services>
      <service name="Pizza.Services.PizzaService">
        <host>
          <baseAddresses>
            <add baseAddress="http://localhost:8733"/>
          </baseAddresses>
        </host>
        <endpoint address="pizza"
                  binding="basicHttpBinding"
                  contract="Pizza.Services.IPizzaService">

        </endpoint>
        <endpoint address="net.tcp://localhost:8733/pizza"
                  binding="netTcpBinding"
                  contract="Pizza.Services.IPizzaService">
        </endpoint>
      </service>
    </services>

如果我从VS2015运行应用程序(作为普通用户或管理员),我会得到:

  

TCP错误(10013:尝试以某种方式访问​​套接字   在侦听IP时发生了禁止访问权限   终点= 0.0.0.0:8733。 ---&GT; System.Net.Sockets.SocketException:An   尝试以访问禁止的方式访问套接字   权限

现在,我的同事已经模糊地解释了Windows 10安全功能,该功能将阻止用户抓取随机端口并将其提供给某些服务。所以我以管理员的身份打开了命令提示符并执行了:

netsh http add urlacl url=http://+:8733/ user=Everyone

仍然是同样的错误。

我注意到了类似的问题,但我觉得这些问题都没有解决我的问题。

编辑:我忘了提到的另一件事是,我试图关闭防火墙和反病毒而没有成功。

2 个答案:

答案 0 :(得分:3)

端点绑定搞砸了。我改变了端口:

<endpoint address="net.tcp://localhost:8733/pizza"
                  binding="netTcpBinding"
                  contract="Pizza.Services.IPizzaService">
</endpoint>

从8733到8732,它的工作原理。基本上,两个端点试图使用相同的端口。

答案 1 :(得分:0)

重新启动 Visual Studio 通常可以解决此问题。